Population and employment

Data - Eurostat

Info

source dataset Title .html .rData
eurostat namq_10_pe Population and employment 2025-10-10 2025-09-26
eurostat nama_10_pe Population and employment - nama_10_pe 2025-10-10 2025-10-10

LAST_COMPILE

LAST_COMPILE
2025-10-11

Last

Code
namq_10_pe %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2025Q2 1258

na_item

Code
namq_10_pe %>%
  left_join(na_item, by = "na_item") %>%
  group_by(na_item, Na_item) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
na_item Na_item Nobs
EMP_DC Total employment domestic concept 25391
SAL_DC Employees domestic concept 24228
SELF_DC Self-employed domestic concept 24228
POP_NC Total population national concept 24104
EMP_NC Total employment national concept 22809
SAL_NC Employees national concept 22007
SELF_NC Self-employed national concept 22007

s_adj

Code
namq_10_pe %>%
  left_join(s_adj, by = "s_adj") %>%
  group_by(s_adj, S_adj) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
s_adj S_adj Nobs
SCA Seasonally and calendar adjusted data 73452
NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 60930
SA Seasonally adjusted data, not calendar adjusted data 24304
CA Calendar adjusted data, not seasonally adjusted data 6088

freq

Code
namq_10_pe %>%
  left_join(freq, by = "freq") %>%
  group_by(freq, Freq) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
freq Freq Nobs
Q Quarterly 164774

unit

Code
namq_10_pe %>%
  left_join(unit, by = "unit") %>%
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
unit Unit Nobs
THS_PER Thousand persons 67077
PCH_SM_PER Percentage change compared to same period in previous year (based on persons) 64937
PCH_PRE_PER Percentage change on previous period (based on persons) 32760

geo

Code
namq_10_pe %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

time

Code
namq_10_pe %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Population Table

Code
namq_10_pe %>%
  filter(time %in% c("2019Q1", "2009Q1", "1999Q1", "1989Q1"),
         na_item == "POP_NC",
         s_adj %in% c("SCA", "SA"),
         unit == "THS_PER") %>%
  select(geo, s_adj, time, values) %>%
  mutate(values = round(values/1000, 1)) %>%
  left_join(geo, by = "geo") %>%
  spread(time, values) %>%
  arrange(- `2009Q1`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Employment Table

Code
namq_10_pe %>%
  filter(time %in% c("2019Q1", "2009Q1", "1999Q1", "1989Q1"),
         na_item == "EMP_DC",
         s_adj %in% c("SCA", "SA"),
         unit == "THS_PER") %>%
  select(geo, s_adj, time, values) %>%
  mutate(values = round(values/1000, 1)) %>%
  left_join(geo, by = "geo") %>%
  spread(time, values) %>%
  arrange(- `2019Q1`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Eurozone

Last observation

Code
namq_10_pe %>%
  filter(time == max(time),
         na_item == "POP_NC") %>%
  spread(unit, values) %>%
  select_if(~ n_distinct(.) > 1) %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, everything()) %>%
  print_table_conditional

Previous observation

Code
namq_10_pe %>%
  filter(time %in% c("2023Q4", "2023Q3"),
         na_item == "POP_NC",
         geo == "EA20") %>%
  spread(time, values) %>%
  select_if(~ n_distinct(.) > 1) %>%
  print_table_conditional
unit 2023Q3 2023Q4
PCH_SM_PER 0.6 0.5
THS_PER 349799.1 350294.6

France Evolution

1999 -

NSA

Code
namq_10_pe %>%
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "NSA") %>%
  left_join(na_item, by = "na_item") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(na_item) %>%
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) %>%
  ggplot() + ylab("Indice des prix, Ensemble") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(1999, 2024, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item))

SA

Code
namq_10_pe %>%
  filter(geo == "FR",
         unit == "THS_PER",
         s_adj == "SA") %>%
  left_join(na_item, by = "na_item") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(na_item) %>%
  mutate(values = 100*values/values[1]) %>%
  select_if(~ n_distinct(.) > 1) %>%
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Na_item)) +
  theme_minimal() +
  scale_x_date(breaks = seq(1999, 2024, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.7),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% group_by(Na_item) %>% filter(date == max(date)), aes(x = date, y = values, label = round(values, 1), color = Na_item))