Population and employment

Data - Eurostat

Info

source dataset .html .RData
eurostat nama_10_pe 2025-05-18 2025-05-18
eurostat namq_10_pe 2025-02-01 2025-05-18

LAST_COMPILE

LAST_COMPILE
2025-05-18

Last

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

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 25080
SAL_DC Employees domestic concept 23856
SELF_DC Self-employed domestic concept 23856
POP_NC Total population national concept 23729
EMP_NC Total employment national concept 22470
SAL_NC Employees national concept 21684
SELF_NC Self-employed national concept 21684

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 72393
NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 60016
SA Seasonally adjusted data, not calendar adjusted data 23956
CA Calendar adjusted data, not seasonally adjusted data 5994

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 162359

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 66104
PCH_SM_PER Percentage change compared to same period in previous year (based on persons) 63964
PCH_PRE_PER Percentage change on previous period (based on persons) 32291

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
geo Geo s_adj PCH_PRE_PER PCH_SM_PER THS_PER
ES Spain NSA NA 0.9 49115.92
NL Netherlands NSA NA 0.6 18055.00
SI Slovenia NSA NA 0.3 2130.85
ES Spain SCA 0.2 0.9 49115.92
NL Netherlands SCA 0.1 0.6 18055.00
SI Slovenia SCA 0.1 0.3 2130.53

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 350946.5 351446.8

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))