Employment rates by sex, age and educational attainment level (%) - lfsq_ergaed

Data - Eurostat

Info

source dataset .html .RData
eurostat lfsq_ergaed 2024-12-22 2024-12-22

LAST_DOWNLOAD

Code
tibble(LAST_DOWNLOAD = as.Date(file.info("~/iCloud/website/data/eurostat/lfsq_ergaed.RData")$mtime)) %>%
  print_table_conditional()
LAST_DOWNLOAD
2024-12-22

LAST_COMPILE

LAST_COMPILE
2024-12-22

Last

Code
lfsq_ergaed %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2024Q3 19335

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 491579
M Males 489355
F Females 489097

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 54546
Y25-29 From 25 to 29 years 53978
Y20-24 From 20 to 24 years 53949
Y30-34 From 30 to 34 years 53946
Y15-74 From 15 to 74 years 49074
Y15-64 From 15 to 64 years 49016
Y15-59 From 15 to 59 years 48999
Y15-39 From 15 to 39 years 48803
Y25-74 From 25 to 74 years 48578
Y20-64 From 20 to 64 years 48572
Y25-64 From 25 to 64 years 48515
Y25-59 From 25 to 59 years 48495
Y25-54 From 25 to 54 years 48460
Y25-49 From 25 to 49 years 48387
Y50-74 From 50 to 74 years 48272
Y40-64 From 40 to 64 years 48261
Y40-59 From 40 to 59 years 48220
Y50-64 From 50 to 64 years 48118
Y50-59 From 50 to 59 years 48027
Y65-74 From 65 to 74 years 47972
Y55-64 From 55 to 64 years 47938
Y50-54 From 50 to 54 years 47864
Y15-19 From 15 to 19 years 47856
Y40-44 From 40 to 44 years 47847
Y45-49 From 45 to 49 years 47831
Y35-39 From 35 to 39 years 47821
Y55-59 From 55 to 59 years 47736
Y65-69 From 65 to 69 years 47718
Y60-64 From 60 to 64 years 47679
Y70-74 From 70 to 74 years 47553

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 311940
ED0-2 Inférieur à l'enseignement primaire, enseignement primaire et premier cycle de l'enseignement secondaire (niveaux 0-2) 310400
ED3_4 Deuxième cycle de l'enseignement secondaire et enseignement post-secondaire non-supérieur (niveaux 3 et 4) 310383
ED5-8 Enseignement supérieur (niveaux 5-8) 304362
NRP Sans réponse 109417
ED3_4VOC Deuxième cycle de l'enseignement secondaire et enseignement post-secondaire non-supérieur (niveaux 3 et 4) - professionnel 62058
ED3_4GEN Deuxième cycle de l'enseignement secondaire et enseignement post-secondaire non-supérieur (niveaux 3 et 4) - général 61339
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))