Short-Term Labour Market Statistics - STLABOUR

Data - OECD

Info

Last observation: Q: 2024-Q4 (N = 641) · M: 2024-12 (N = 572) · A: 2024 (N = 769)

First observation: A: 1960 (N = 756) · M: 1960-01 (N = 314) · Q: 1960-Q1 (N = 359)

Last data update: 02 aoû 2026, 09:15. Last compile: 18 aoû 2026, 03:24

Structure

Nobs - Javascript

Code
STLABOUR |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  left_join(STLABOUR_var$MEASURE, by = "MEASURE") |>
  group_by(SUBJECT, Subject, MEASURE, Measure, FREQUENCY) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Employment to Population Rate - LREPTTMA

Table

Code
STLABOUR |>
  # LREMTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREPTTTT"), 
         MEASURE == "ST") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  group_by(LOCATION, Location, Frequency) |>
  summarise(Nobs = n()) |>
  spread(Frequency, Nobs) |>
  arrange(-`Annual`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Location)),
         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 .}

Employment rate

Table

Code
STLABOUR |>
  # LREMTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  group_by(LOCATION, Location, Subject) |>
  summarise(Nobs = n()) |>
  spread(Subject, Nobs) |>
  arrange(-`Employment rate, Aged 15 and over, All persons`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Location)),
         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 .}

Italy, Germany, France, Spain, Greece

25-54

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREM25TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q",
         LOCATION %in% c("DEU", "ESP", "FRA", "ITA", "USA")) |>
  quarter_to_date() |>
  group_by(date) |>
  filter(n() > 1) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue/100) |>
  mutate(color = ifelse(LOCATION == "USA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  theme_minimal() + xlab("") + ylab("Employment rate, Aged 25-54") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 5),
                     labels = scales::percent_format(accuracy = 1))

25-64

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREM64TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q",
         LOCATION %in% c("DEU", "ESP", "FRA", "ITA", "USA")) |>
  quarter_to_date() |>
  group_by(date) |>
  filter(n() > 1) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue/100) |>
  mutate(color = ifelse(LOCATION == "USA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  theme_minimal() + xlab("") + ylab("Employment rate, Aged 15-64") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 5),
                     labels = scales::percent_format(accuracy = 1))

15-74

English

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q",
         LOCATION %in% c("DEU", "ESP", "FRA", "ITA", "USA")) |>
  quarter_to_date() |>
  group_by(date) |>
  filter(n() > 1) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue/100) |>
  mutate(color = ifelse(LOCATION == "USA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  theme_minimal() + xlab("") + ylab("Employment rate, Aged 15-74") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 5),
                     labels = scales::percent_format(accuracy = 1))

French

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q",
         LOCATION %in% c("DEU", "ESP", "FRA", "ITA", "USA")) |>
  quarter_to_date() |>
  group_by(date) |>
  filter(n() > 1) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue/100) |>
  mutate(color = ifelse(LOCATION == "USA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  theme_minimal() + xlab("") + ylab("Taux d'emploi, 15-74") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 5),
                     labels = scales::percent_format(accuracy = 1))

15+

All

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREMTTTT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q",
         LOCATION %in% c("DEU", "ESP", "FRA", "ITA", "USA")) |>
  quarter_to_date() |>
  group_by(date) |>
  filter(n() > 1) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue/100) |>
  mutate(color = ifelse(LOCATION == "USA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  theme_minimal() + xlab("") + ylab("Employment rate, Aged 15+") +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 5),
                     labels = scales::percent_format(accuracy = 1))

SA

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREMTTTT"), 
         MEASURE == "STSA", 
         FREQUENCY == "Q",
         LOCATION %in% c("DEU", "ESP", "FRA", "ITA", "USA")) |>
  quarter_to_date() |>
  group_by(date) |>
  filter(n() > 1) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue/100) |>
  mutate(color = ifelse(LOCATION == "USA", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  theme_minimal() + xlab("") + ylab("Employment rate, Aged 15+") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 5),
                     labels = scales::percent_format(accuracy = 1))

Employment rate - LREMTTTT, LREM25TT, LREM64TT, LREM74TT

Table

Code
STLABOUR |>
  # LREMTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  group_by(LOCATION, Location, Subject) |>
  summarise(Nobs = n()) |>
  spread(Subject, Nobs) |>
  arrange(-`Employment rate, Aged 15 and over, All persons`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Location)),
         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 .}

Italy

Absolute

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "ITA") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 80, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Employment Rate (%)") + xlab("")

1998 = 100

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "ITA") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  group_by(Subject) |>
  mutate(obsValue = 100*obsValue/obsValue[date == as.Date("1998-01-01")]) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 2)) +
  ylab("Employment (1998 = 100)") + xlab("")

2005 = 100

All

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "ITA") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  filter(date >= as.Date("2005-01-01")) |>
  group_by(Subject) |>
  mutate(obsValue = 100*obsValue/obsValue[date == as.Date("2005-01-01")]) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 2)) +
  ylab("Employment (2005 = 100)") + xlab("")

Men

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREMTTMA", "LREM25MA", "LREM64MA", "LREM74MA"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "ITA") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  filter(date >= as.Date("2005-01-01")) |>
  group_by(Subject) |>
  mutate(obsValue = 100*obsValue/obsValue[date == as.Date("2005-01-01")]) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 2)) +
  ylab("Employment (2005 = 100)") + xlab("")

Etats-Unis, Zone Euro

France, Etats-Unis

All

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("FRA", "USA")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, linetype = Location, color = Subject) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 80, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Employment Rate (%)") + xlab("")

2000-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("FRA", "USA")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  filter(date >= as.Date("1999-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue/100, linetype = Location, color = Subject)) + 
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_color_manual(values = rainbow(4)[1:4]) +
  scale_linetype_manual(values = c("solid", "dashed")) +
  theme(legend.position = "none") +
  annotate("text", x = as.Date("2021-07-01"), y = 0.8, label= "25-54", color = rainbow(4)[4]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.69, label= "15-64", color = rainbow(4)[2]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.62, label= "15-74", color = rainbow(4)[3]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.55, label= "15+", color = rainbow(4)[1]) + 
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Employment Rate (%)") + xlab("") + 
  labs(caption = "Solid: France, Dotted: United States")

2017-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("FRA", "USA")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  filter(date >= as.Date("2017-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue/100, linetype = Location, color = Subject)) + 
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_color_manual(values = rainbow(4)[1:4]) +
  scale_linetype_manual(values = c("solid", "dashed")) +
  theme(legend.position = "none") +
  annotate("text", x = as.Date("2021-07-01"), y = 0.8, label= "25-54", color = rainbow(4)[4]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.69, label= "15-64", color = rainbow(4)[2]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.62, label= "15-74", color = rainbow(4)[3]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.55, label= "15+", color = rainbow(4)[1]) + 
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Employment Rate (%)") + xlab("") + 
  labs(caption = "Solid: France, Dotted: United States")

2019Q2-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("FRA", "USA")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  filter(date >= as.Date("2019-04-01")) |>
  mutate(obsValue = obsValue/100) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, linetype = Location, color = Subject)) + 
  theme_minimal() + add_8flags +
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %Y")) +
  scale_color_manual(values = rainbow(4)[1:4]) +
  scale_linetype_manual(values = c("solid", "dashed")) +
  annotate("text", x = as.Date("2021-07-01"), y = 0.8, label= "25-54", color = rainbow(4)[4]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.69, label= "15-64", color = rainbow(4)[2]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.62, label= "15-74", color = rainbow(4)[3]) + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.55, label= "15+", color = rainbow(4)[1]) + 
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                     labels = scales::percent_format(accuracy = 1),
                     limits = c(0.45, 0.85)) +
  ylab("Employment Rate (%)") + xlab("") +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

2019Q2-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("FRA", "USA")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  filter(date >= as.Date("2019-04-01")) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, linetype = Subject, color = color)) + 
  theme_minimal() + add_8flags +
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %Y")) +
  scale_color_identity() +
  scale_linetype_manual(values = c("solid", "dashed", "dotted", "solid")) +
  annotate("text", x = as.Date("2021-07-01"), y = 0.8, label= "25-54") + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.69, label= "15-64") + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.61, label= "15-74") + 
  annotate("text", x = as.Date("2021-07-01"), y = 0.55, label= "15+") + 
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                     labels = scales::percent_format(accuracy = 1),
                     limits = c(0.45, 0.85)) +
  ylab("Employment Rate (%)") + xlab("") +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

France

All

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "FRA") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 80, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Employment Rate (%)") + xlab("")

Men

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREMTTMA", "LREM25MA", "LREM64MA", "LREM74MA"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "FRA") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  filter(date >= as.Date("2005-01-01")) |>
  group_by(Subject) |>
  mutate(obsValue = 100*obsValue/obsValue[date == as.Date("2005-01-01")]) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 2)) +
  ylab("Employment (2005 = 100)") + xlab("")

Germany

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LREMTTTT", "LREM25TT", "LREM64TT", "LREM74TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "DEU") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Employment Rate (%)") + xlab("")

Men

Code
STLABOUR |>
  filter(SUBJECT %in% c("LREMTTMA", "LREM25MA", "LREM64MA", "LREM74MA"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == "DEU") |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  filter(date >= as.Date("2005-01-01")) |>
  group_by(Subject) |>
  mutate(obsValue = 100*obsValue/obsValue[date == as.Date("2005-01-01")]) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue, color = Subject) +
  scale_color_manual(values = viridis(5)[1:4]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 2)) +
  ylab("Employment (2005 = 100)") + xlab("")

LREMTTTT - Employment rate, Aged 15 and over, All persons

Table

Code
STLABOUR |>
  # LREMTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LREMTTTT", 
         MEASURE == "ST", 
         FREQUENCY %in% c("Q", "M", "A")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  group_by(LOCATION, Location, Frequency) |>
  summarise(Nobs = n()) |>
  spread(Frequency, Nobs) |>
  arrange(-Annual) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Location)),
         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 .}

Individual Countries: Different Frequencies

Iceland

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("ISL")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Japan

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("JPN")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

United States

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("USA")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Australia

All

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("AUS")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

1990-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("AUS")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

2010-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("AUS")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  filter(date >= as.Date("2010-01-01")) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 0.5),
                     labels = scales::percent_format(accuracy = 0.1)) +
  ylab("Unemployment Rate (%)") + xlab("")

France

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("FRA")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Canada

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("CAN")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Korea

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("KOR")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

New Zealand

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("NZL")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Belgium

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("BEL")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Denmark

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("DNK")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Austria

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("AUT")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.2),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

United Kingdom

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT"), 
         MEASURE == "ST", 
         FREQUENCY %in% c("A", "M", "Q"), 
         LOCATION == c("GBR")) |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Frequency) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Individual Countries: Different Ages

Australia

Annual

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT","LRUN64TT", "LRUN25TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == c("AUS")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Subject) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.75, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Monthly

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT","LRUN64TT", "LRUN25TT"), 
         MEASURE == "ST", 
         FREQUENCY == "M", 
         LOCATION == c("AUS")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Subject) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Iceland

Annual

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT","LRUN64TT", "LRUN25TT"), 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION == c("ISL")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Subject) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.75, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Monthly

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT %in% c("LRHUTTTT","LRUN64TT", "LRUN25TT"), 
         MEASURE == "ST", 
         FREQUENCY == "M", 
         LOCATION == c("ISL")) |>
  left_join(STLABOUR_var$SUBJECT, by = "SUBJECT") |>
  frequency_to_date() |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = Subject) +
  scale_color_manual(values = viridis(4)[1:3]) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Harmonised unemployment Rate, Total, All persons - LRHUTTTT

Number of Obs - Annual, Quarterly, Monthly

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY %in% c("Q", "M", "A")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  left_join(STLABOUR_var$FREQUENCY, by = "FREQUENCY") |>
  group_by(LOCATION, Location, Frequency) |>
  summarise(Nobs = n()) |>
  spread(Frequency, Nobs) |>
  arrange(-Annual) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Location)),
         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 .}

Canada, Japan, New Zealand

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION %in% c("CAN", "JPN", "NZL")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  year_to_date() |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line() + theme_minimal() +
  aes(x = date, y = obsValue/100, color = color) +
  scale_color_identity() +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

United States, Europe, France

Annual

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION %in% c("USA", "EA20", "FRA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Quarterly

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("USA", "EA20", "FRA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Monthly

All

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "M", 
         LOCATION %in% c("USA", "EA20", "FRA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

1990-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "M", 
         LOCATION %in% c("USA", "EA20", "FRA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) |>
  mutate(obsValue = obsValue/100) |>
  filter(date >= as.Date("1990-01-01")) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(LOCATION == "EA20", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

1999-

Code
plot <- STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "M", 
         LOCATION %in% c("USA", "EA20")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(Location = ifelse(LOCATION == "EA20", "Zone euro", "Etats-Unis")) |>
  mutate(obsValue = obsValue/100) |>
  filter(date >= as.Date("1999-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Location)) +
  scale_color_manual(values = c("#B22234", "#003399")) +
  geom_rect(data = nber_recessions |>
              filter(Peak > as.Date("1999-01-01")), 
            aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf), 
            fill = '#B22234', alpha = 0.1)  +
  geom_rect(data = cepr_recessions |>
              filter(Peak > as.Date("1999-01-01")), 
            aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf), 
            fill = '#003399', alpha = 0.1) +
  theme_minimal() +
  scale_x_date(breaks = c(seq(1999, 2100, 5), seq(2002, 2100, 5)) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Taux de chômage (%)") + xlab("")

plot

Code
save(plot, file = "STLABOUR_files/figure-html/LRHUTTTT-M-USA-EA20-1999-1.RData")

2005-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "M", 
         LOCATION %in% c("USA", "EA20", "FRA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) |>
  mutate(obsValue = obsValue/100) |>
  filter(date >= as.Date("2005-01-01")) |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(color = ifelse(LOCATION == "EA20", color2, color)) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

United States, Australia, Belgium

Annual

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "A", 
         LOCATION %in% c("USA", "AUS", "BEL")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Quarterly

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("USA", "AUS", "BEL")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Monthly

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "M", 
         LOCATION %in% c("USA", "AUS", "BEL")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  frequency_to_date() |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Germany, France, United States

All

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("DEU", "FRA", "USA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  mutate(obsValue = obsValue/100) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Location)) + theme_minimal() +
  add_3flags +
  scale_color_manual(values = c("#002395", "#000000", "#B22234")) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

1990-

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("DEU", "FRA", "USA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  mutate(obsValue = obsValue/100) |>
  filter(date >= as.Date("1990-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Location)) + theme_minimal() +
  add_3flags +
  scale_color_manual(values = c("#002395", "#000000", "#B22234")) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Germany, United Kingdom, United States

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("DEU", "GBR", "USA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  ggplot() + geom_line(aes(x = date, y = obsValue/100, color = Location)) + theme_minimal() +
  geom_image(data = . %>%
               filter(date == as.Date("1998-01-01")) %>%
               mutate(image = paste0("../../icon/flag/round/", str_to_lower(gsub(" ", "-", Location)), ".png")),
             aes(x = date, y = obsValue/100, image = image), asp = 1.5) +
  scale_color_manual(values = c("#000000", "#CF142B", "#3C3B6E")) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

Germany, France, Italy

Code
STLABOUR |>
  # LRHUTTTT: Harmonised unemployment Rate (monthly), Total, All persons
  # ST: Level, rate or quantity series
  filter(SUBJECT == "LRHUTTTT", 
         MEASURE == "ST", 
         FREQUENCY == "Q", 
         LOCATION %in% c("DEU", "FRA", "ITA")) |>
  left_join(STLABOUR_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  ggplot() + geom_line(aes(x = date, y = obsValue/100, color = Location)) + theme_minimal() +
  geom_image(data = . %>%
               filter(date == as.Date("2015-01-01")) %>%
               mutate(image = paste0("../../icon/flag/round/", str_to_lower(gsub(" ", "-", Location)), ".png")),
             aes(x = date, y = obsValue/100, image = image), asp = 1.5) +
  scale_color_manual(values = c( "#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-7, 80, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")