| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| eurostat | lfsq_ergaed | Employment rates by sex, age and educational attainment level (%) - lfsq_ergaed | 2026-03-24 | 2026-03-23 |
Employment rates by sex, age and educational attainment level (%) - lfsq_ergaed
Data - Eurostat
Info
LAST_DOWNLOAD
Code
tibble(LAST_DOWNLOAD = as.Date(file.info("~/iCloud/website/data/eurostat/lfsq_ergaed.RData")$mtime)) %>%
print_table_conditional()| LAST_DOWNLOAD |
|---|
| 2026-03-24 |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2026-03-25 |
Last
Code
lfsq_ergaed %>%
group_by(time) %>%
summarise(Nobs = n()) %>%
arrange(desc(time)) %>%
head(1) %>%
print_table_conditional()| time | Nobs |
|---|---|
| 2025Q4 | 19898 |
sex
Code
lfsq_ergaed %>%
left_join(sex, by = "sex") %>%
group_by(sex, Sex) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()| sex | Sex | Nobs |
|---|---|---|
| T | Total | 527988 |
| M | Males | 525632 |
| F | Females | 525309 |
age
Code
lfsq_ergaed %>%
left_join(age, by = "age") %>%
group_by(age, Age) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()| age | Age | Nobs |
|---|---|---|
| Y15-24 | From 15 to 24 years | 58152 |
| Y25-29 | From 25 to 29 years | 57593 |
| Y30-34 | From 30 to 34 years | 57566 |
| Y20-24 | From 20 to 24 years | 57548 |
| Y15-74 | From 15 to 74 years | 52743 |
| Y15-64 | From 15 to 64 years | 52685 |
| Y15-59 | From 15 to 59 years | 52668 |
| Y15-39 | From 15 to 39 years | 52450 |
| Y25-74 | From 25 to 74 years | 52241 |
| Y20-64 | From 20 to 64 years | 52240 |
| Y25-64 | From 25 to 64 years | 52178 |
| Y25-59 | From 25 to 59 years | 52156 |
| Y25-54 | From 25 to 54 years | 52119 |
| Y25-49 | From 25 to 49 years | 52041 |
| Y50-74 | From 50 to 74 years | 51939 |
| Y40-64 | From 40 to 64 years | 51916 |
| Y40-59 | From 40 to 59 years | 51870 |
| Y50-64 | From 50 to 64 years | 51777 |
| Y50-59 | From 50 to 59 years | 51678 |
| Y65-74 | From 65 to 74 years | 51609 |
| Y55-64 | From 55 to 64 years | 51589 |
| Y50-54 | From 50 to 54 years | 51501 |
| Y40-44 | From 40 to 44 years | 51471 |
| Y45-49 | From 45 to 49 years | 51454 |
| Y35-39 | From 35 to 39 years | 51432 |
| Y55-59 | From 55 to 59 years | 51370 |
| Y65-69 | From 65 to 69 years | 51334 |
| Y60-64 | From 60 to 64 years | 51296 |
| Y70-74 | From 70 to 74 years | 51175 |
| Y15-19 | From 15 to 19 years | 51138 |
isced11
Code
load_data("eurostat/isced11_fr.RData")
lfsq_ergaed %>%
left_join(isced11, by = "isced11") %>%
group_by(isced11, Isced11) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()| isced11 | Isced11 | Nobs |
|---|---|---|
| TOTAL | Ensemble des niveaux de la CITE 2011 | 329400 |
| ED0-2 | Inférieur à l'enseignement primaire, enseignement primaire et premier cycle de l'enseignement secondaire (niveaux 0-2) | 327860 |
| ED3_4 | Deuxième cycle de l'enseignement secondaire et enseignement post-secondaire non-supérieur (niveaux 3 et 4) | 327844 |
| ED5-8 | Enseignement supérieur (niveaux 5-8) | 321504 |
| NRP | Sans réponse | 114114 |
| ED35_45 | Deuxième cycle du secondaire et post-secondaire non-supérieur - professionnel (niveaux 35 et 45) | 79515 |
| ED34_44 | Deuxième cycle du secondaire et post-secondaire non-supérieur - général (niveaux 34 et 44) | 78560 |
| NAP | Non applicable | 132 |
geo
Code
lfsq_ergaed %>%
left_join(geo, by = "geo") %>%
group_by(geo, Geo) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) %>%
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}time
Code
lfsq_ergaed %>%
group_by(time) %>%
summarise(Nobs = n()) %>%
arrange(desc(time)) %>%
print_table_conditional()France, EU, Italy, Germany, Spain, Netherlands
Peu d’éducation
Y15-39
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y15-39",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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))
Y40-64
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y40-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("2005-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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 40-64 (1er cycle du 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))
Males
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y40-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "M") %>%
quarter_to_date() %>%
filter(date >= as.Date("2005-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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 M 40-64 (1er cycle du 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))
Females
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y40-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "F") %>%
quarter_to_date() %>%
filter(date >= as.Date("2005-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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 F 40-64 (1er cycle du 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))
Y15-64
Tous
1995-
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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))
2005-
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("2005-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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 du 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))
Femmes
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "F") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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))
Hommes
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "M") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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))
Y15-74
Code
lfsq_ergaed %>%
filter(isced11 == "ED0-2",
age == "Y15-74",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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
lfsq_ergaed %>%
filter(isced11 == "ED3_4",
age == "Y15-74",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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
lfsq_ergaed %>%
filter(isced11 == "ED5-8",
age == "Y15-74",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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
lfsq_ergaed %>%
filter(isced11 == "TOTAL",
age == "Y15-74",
geo %in% c("ES", "DE", "FR", "IT", "EA20"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
left_join(geo, by = "geo") %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA20", 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
lfsq_ergaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "T",
unit == "PC") %>%
quarter_to_date %>%
left_join(geo, by = "geo") %>%
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
lfsq_ergaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "F",
unit == "PC") %>%
quarter_to_date %>%
left_join(geo, by = "geo") %>%
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
lfsq_ergaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "M",
unit == "PC") %>%
quarter_to_date %>%
left_join(geo, by = "geo") %>%
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))