Distribution of income by quantiles - EU-SILC and ECHP surveys - ilc_di01
Data - Eurostat
Info
Last observation: Annual: 2025 (N = 5,544)
First observation: Annual: 1995 (N = 1,400)
Last data update: 11 aoû 2026, 20:18. Last compile: 12 aoû 2026, 00:35
Structure
D10 / D1
Code
ilc_di01 |>
filter(quant_inc %in% c("D1", "D10"),
geo %in% c("FR", "DE"),
unit == "EUR",
statinfo == "SHARE") |>
time_to_date() |>
arrange(date, quant_inc, geo, values) |>
spread(quant_inc, values) |>
mutate(values = D10/D1) |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("") +
scale_y_continuous(breaks = seq(0, 20, 1))
D9 / D1
Code
ilc_di01 |>
filter(quant_inc %in% c("D1", "D9"),
geo %in% c("FR", "DE"),
unit == "EUR",
statinfo == "SHARE") |>
time_to_date() |>
arrange(date, quant_inc, geo, values) |>
spread(quant_inc, values) |>
mutate(values = D9/D1) |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("") +
scale_y_continuous(breaks = seq(0, 20, 1))
France, Germany, Italy, Spain, Sweden
D10 / D1
Code
ilc_di01 |>
filter(quant_inc %in% c("D1", "D10"),
geo %in% c("FR", "DE", "IT", "ES", "SE"),
unit == "EUR",
statinfo == "SHARE") |>
time_to_date() |>
arrange(date, quant_inc, geo, values) |>
spread(quant_inc, values) |>
mutate(values = D10/D1) |>
left_join(colors, by = c("Geo" = "country")) |>
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(1995, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("D10 / D1 ratio") +
scale_y_continuous(breaks = seq(0, 20, 1))
Latest Year by Country
Code
latest_y <- ilc_di01 |>
filter(quant_inc %in% c("D1", "D10"), unit == "EUR", statinfo == "SHARE", !is.na(values)) |>
summarise(m = max(time)) |>
pull(m)
ilc_di01 |>
filter(quant_inc %in% c("D1", "D9", "D10"),
geo %in% c("FR", "DE", "IT", "ES", "SE", "PL", "PT", "NL"),
unit == "EUR",
statinfo == "SHARE",
time == latest_y) |>
select(Geo, quant_inc, values) |>
spread(quant_inc, values) |>
mutate(`D10/D1` = D10/D1, `D9/D1` = D9/D1) |>
arrange(-`D10/D1`) |>
print_table_conditional()| Geo | D1 | D10 | D9 | D10/D1 | D9/D1 |
|---|---|---|---|---|---|
| Spain | 2.5 | 22.9 | 15.3 | 9.160000 | 6.120000 |
| Italy | 2.7 | 24.0 | 14.7 | 8.888889 | 5.444444 |
| Sweden | 2.6 | 22.1 | 14.4 | 8.500000 | 5.538462 |
| France | 3.1 | 24.6 | 14.2 | 7.935484 | 4.580645 |
| Portugal | 3.1 | 24.6 | 14.8 | 7.935484 | 4.774193 |
| Germany | 3.2 | 23.9 | 14.6 | 7.468750 | 4.562500 |
| Netherlands | 3.7 | 21.5 | 13.7 | 5.810811 | 3.702703 |
| Poland | 3.7 | 20.5 | 14.0 | 5.540540 | 3.783784 |