Last observation: 2025 (N = 135)
First observation: 1994 (N = 45)
Last data update: 14 aoû 2026, 20:20. Last compile: 18 aoû 2026, 04:31
Data - Eurostat
Last observation: 2025 (N = 135)
First observation: 1994 (N = 45)
Last data update: 14 aoû 2026, 20:20. Last compile: 18 aoû 2026, 04:31
tipser10 |>
filter(geo %in% c("FR", "DE", "NL", "ES", "IT"),
unit == "PCH_3Y") |>
year_to_date() |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(values = values/100) |>
mutate(color = ifelse(geo == "NL", color2, color)) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
scale_color_identity() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("Real effective exchange rate") +
scale_y_continuous(breaks = 0.01*seq(-300, 200, 2),
labels = scales::percent_format(accuracy = 1)) +
geom_hline(yintercept = 0.05, linetype = "dashed") +
geom_hline(yintercept = -0.05, linetype = "dashed") +
geom_hline(yintercept = 0.11, linetype = "dashed") +
geom_hline(yintercept = -0.11, linetype = "dashed")
tipser10 |>
filter(geo %in% c("FR", "DE", "NL", "ES", "IT"),
unit == "I15") |>
year_to_date() |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "NL", color2, color)) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
scale_color_identity() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("Real effective exchange rate (Index, 2015=100)") +
geom_hline(yintercept = 100, linetype = "dashed", color = "black")
latest_yr <- tipser10 |>
filter(unit == "PCH_1Y", nchar(geo) == 2, !is.na(values)) |>
summarise(m = max(time)) |>
pull(m)
tipser10 |>
filter(unit == "PCH_1Y", nchar(geo) == 2, time == latest_yr) |>
select(geo, Geo, `REER, 1-year change (%)` = values) |>
arrange(desc(`REER, 1-year change (%)`)) |>
print_table_conditional()