Population and employment by main activity - SNA_TABLE3
Data - OECD
Last observation: 2024 (N = 2673)
First observation: 1987 (N = 6)
Last data update: 02 août 2026, 09:09
Last compile: 04 sept. 2026, 03:03
Structure
Layout
- OECD Website. html

PER - Persons (Thousands)
France, Germany, United States
Code
SNA_TABLE3 |>
filter(TIME_PERIOD == "2018",
LOCATION %in% c("FRA", "DEU", "USA"),
MEASURE == "PER") |>
left_join(SNA_TABLE3_var$TRANSACT, by = "TRANSACT") |>
select(LOCATION, TRANSACT, Transact, obsValue) |>
mutate(obsValue = round(obsValue)) |>
spread(LOCATION, obsValue) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}Spain, Italy, United Kingdom
Code
SNA_TABLE3 |>
filter(TIME_PERIOD == "2018",
LOCATION %in% c("ITA", "ESP", "GBR"),
MEASURE == "PER") |>
left_join(SNA_TABLE3_var$TRANSACT, by = "TRANSACT") |>
select(LOCATION, TRANSACT, Transact, obsValue) |>
mutate(obsValue = round(obsValue)) |>
spread(LOCATION, obsValue) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}Population
France, Germany, United States, United Kingdom, Europe
1990-
Code
SNA_TABLE3 |>
filter(TRANSACT %in% c("POPNC"),
MEASURE == "PER",
LOCATION %in% c("FRA", "DEU", "GBR", "USA", "EA19")) |>
year_to_date() |>
left_join(SNA_TABLE3_var$LOCATION, by = "LOCATION") |>
mutate(Location = ifelse(LOCATION == "EA19", "Europe", Location)) |>
select(Location, date, TRANSACT, obsValue) |>
add_flag_color("Location") |>
group_by(Location) |>
filter(date >= as.Date("1990-01-01")) |>
mutate(obsValue = 100*obsValue/obsValue[1]) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
scale_color_identity() + theme_minimal() + add_5flags +
scale_x_date(breaks = seq(1920, 2100, 10) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.15, 0.9),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(100, 300, 10)) +
ylab("Employment") + xlab("")1995-
Code
SNA_TABLE3 |>
filter(TRANSACT %in% c("POPNC"),
MEASURE == "PER",
LOCATION %in% c("FRA", "DEU", "GBR", "USA", "EA19")) |>
year_to_date() |>
left_join(SNA_TABLE3_var$LOCATION, by = "LOCATION") |>
mutate(Location = ifelse(LOCATION == "EA19", "Europe", Location)) |>
select(Location, date, TRANSACT, obsValue) |>
add_flag_color("Location") |>
group_by(Location) |>
filter(date >= as.Date("1995-01-01")) |>
mutate(obsValue = 100*obsValue/obsValue[1]) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
scale_color_identity() + theme_minimal() + add_5flags +
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_log10(breaks = seq(100, 300, 5)) +
ylab("Employment") + xlab("")2008-
Code
SNA_TABLE3 |>
filter(TRANSACT %in% c("POPNC"),
MEASURE == "PER",
LOCATION %in% c("FRA", "DEU", "GBR", "USA", "EA19")) |>
year_to_date() |>
left_join(SNA_TABLE3_var$LOCATION, by = "LOCATION") |>
mutate(Location = ifelse(LOCATION == "EA19", "Europe", Location)) |>
select(Location, date, TRANSACT, obsValue) |>
add_flag_color("Location") |>
group_by(Location) |>
filter(date >= as.Date("2008-01-01")) |>
mutate(obsValue = 100*obsValue/obsValue[1]) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
scale_color_identity() + theme_minimal() + add_5flags +
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_log10(breaks = seq(100, 300, 1)) +
ylab("Employment") + xlab("")Employment / Population
Number of Persons: PER
All
Code
SNA_TABLE3 |>
filter(TRANSACT %in% c("EEM", "POPNC"),
MEASURE == "PER",
LOCATION %in% c("FRA", "DEU", "ITA")) |>
year_to_date() |>
left_join(SNA_TABLE3_var$LOCATION, by = "LOCATION") |>
select(Location, date, TRANSACT, obsValue) |>
spread(TRANSACT, obsValue) |>
group_by(Location) |>
mutate(POPNC_trend = log(POPNC) |> hpfilter(1000000) |> pluck("trend") |> exp(),
obsValue = EEM / POPNC_trend) |>
add_flag_color("Location") |>
na.omit() |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
scale_color_identity() + theme_minimal() + add_3flags +
scale_x_date(breaks = seq(1920, 2100, 10) |> 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(-10, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
ylab("Employment / Population") + xlab("")1995-
Code
SNA_TABLE3 |>
filter(TRANSACT %in% c("EEM", "POPNC"),
MEASURE == "PER",
LOCATION %in% c("FRA", "DEU", "ITA")) |>
year_to_date() |>
filter(date >= as.Date("1995-01-01")) |>
left_join(SNA_TABLE3_var$LOCATION, by = "LOCATION") |>
select(Location, date, TRANSACT, obsValue) |>
spread(TRANSACT, obsValue) |>
group_by(Location) |>
mutate(POPNC_trend = log(POPNC) |> hpfilter(1000000) |> pluck("trend") |> exp(),
obsValue = EEM / POPNC_trend) |>
add_flag_color("Location") |>
na.omit() |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
scale_color_identity() + theme_minimal() + 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(-10, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
ylab("Employment / Population") + xlab("")Number of Hours: HRS
All
Code
SNA_TABLE3 |>
filter((TRANSACT == "EEM" & MEASURE == "HRS") |
(TRANSACT == "POPNC" & MEASURE == "PER"),
LOCATION %in% c("FRA", "DEU", "ITA")) |>
year_to_date() |>
left_join(SNA_TABLE3_var$LOCATION, by = "LOCATION") |>
select(Location, date, TRANSACT, obsValue) |>
spread(TRANSACT, obsValue) |>
group_by(Location) |>
mutate(POPNC_trend = log(POPNC) |> hpfilter(1000000) |> pluck("trend") |> exp(),
obsValue = EEM / POPNC_trend) |>
add_flag_color("Location") |>
na.omit() |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
scale_color_identity() + theme_minimal() + add_3flags +
scale_x_date(breaks = seq(1920, 2100, 10) |> 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(-10, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
ylab("Employment / Population") + xlab("")1995-
Code
SNA_TABLE3 |>
filter((TRANSACT == "EEM" & MEASURE == "HRS") |
(TRANSACT == "POPNC" & MEASURE == "PER"),
LOCATION %in% c("FRA", "DEU", "ITA")) |>
year_to_date() |>
filter(date >= as.Date("1995-01-01")) |>
left_join(SNA_TABLE3_var$LOCATION, by = "LOCATION") |>
select(Location, date, TRANSACT, obsValue) |>
spread(TRANSACT, obsValue) |>
group_by(Location) |>
mutate(POPNC_trend = log(POPNC) |> hpfilter(1000000) |> pluck("trend") |> exp(),
obsValue = EEM / POPNC_trend) |>
add_flag_color("Location") |>
na.omit() |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
scale_color_identity() + theme_minimal() + 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(-10, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
ylab("Employment / Population") + xlab("")





















