Unemployment rates by sex, age and educational attainment level (%) - lfsa_urgaed
Data - Eurostat
Info
Last observation: Annual: 2025 (N = 19,849)
First observation: Annual: 1983 (N = 1,740)
Last data update: 24 jul 2026, 00:20. Last compile: 24 jul 2026, 02:16
Structure
isced11
Code
load_data("eurostat/isced11_fr.RData")
lfsa_urgaed %>%
group_by(isced11, Isced11) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()| isced11 | Isced11 | Nobs |
|---|---|---|
| TOTAL | All ISCED 2011 levels | 101703 |
| ED0-2 | Less than primary, primary and lower secondary education (levels 0-2) | 91608 |
| ED3_4 | Upper secondary and post-secondary non-tertiary education (levels 3 and 4) | 91606 |
| ED5-8 | Tertiary education (levels 5-8) | 90164 |
| NRP | No response | 46358 |
| ED35_45 | Upper secondary and post-secondary non-tertiary education - vocational (levels 35 and 45) | 19427 |
| ED34_44 | Upper secondary and post-secondary non-tertiary education - general (levels 34 and 44) | 19201 |
| NAP | Not applicable | 72 |
France, EU, Italy, Germany, Spain, Netherlands
15-74, peu d’éducation
Code
lfsa_urgaed %>%
filter(isced11 == "ED0-2",
age == "Y15-74",
geo %in% c("EA19", "DE", "ES", "FR", "IT"),
sex == "T") %>%
year_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi (1er cycle de l'enseignement secondaire)") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
Education moyenne
Code
lfsa_urgaed %>%
filter(isced11 == "ED3_4",
age == "Y15-74",
geo %in% c("EA19", "DE", "ES", "FR", "IT"),
sex == "T") %>%
year_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
Enseignement supérieur
Code
lfsa_urgaed %>%
filter(isced11 == "ED5-8",
age == "Y15-74",
geo %in% c("EA19", "DE", "ES", "FR", "IT"),
sex == "T") %>%
year_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
TOTAL
Code
lfsa_urgaed %>%
filter(isced11 == "TOTAL",
age == "Y15-74",
geo %in% c("ES", "DE", "FR", "IT", "EA19"),
sex == "T") %>%
year_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
EU: Employment Rates - All
All
Code
lfsa_urgaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "T",
unit == "PC") %>%
year_to_date %>%
ggplot + geom_line() + theme_minimal() +
aes(x = date, y = values/100, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.3, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Employment Rates") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))
Female
Code
lfsa_urgaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "F",
unit == "PC") %>%
year_to_date %>%
ggplot + geom_line() + theme_minimal() +
aes(x = date, y = values/100, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.3, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Employment Rates (Female)") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))
Male
Code
lfsa_urgaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "M",
unit == "PC") %>%
year_to_date %>%
ggplot + geom_line() + theme_minimal() +
aes(x = date, y = values/100, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.22, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Employment Rates (Male)") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))