Main GDP aggregates per capita - nama_10_pc

Data - Eurostat

Info

source dataset .html .RData
eurostat nama_10_pc 2025-03-11 2025-05-18

na_item

Code
nama_10_pc %>%
  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
B1GQ Gross domestic product at market prices 14918
P3 Final consumption expenditure 14888
P31_S14_S15 Household and NPISH final consumption expenditure 14888
P3_S13 Final consumption expenditure of general government 14888
P31_S14 Final consumption expenditure of households 14619
P31_S15 Final consumption expenditure of NPISH 14404
P31_S13 Individual consumption expenditure of general government 14329
P32_S13 Collective consumption expenditure of general government 14329
P41 Actual individual consumption 14329

unit

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

geo

Code
nama_10_pc %>%
  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
nama_10_pc %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Range

Not Luxembourg

Code
nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ") %>%
  select_if(~ n_distinct(.) > 1) %>%
  group_by(time) %>%
  mutate(values = 100*values/values[geo == "EU27_2020"]) %>%
  year_to_date() %>%
  ggplot + geom_line(aes(x = date, y = values, color = geo)) + 
  geom_text_repel(data = . %>% group_by(geo) %>% filter(date == max(date)),
                  aes(x = date, y = values, color = geo, label = geo))

Not Luxembourg

Code
nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         !(geo %in% c("LU", "EA19"))) %>%
  select_if(~ n_distinct(.) > 1) %>%
  group_by(time) %>%
  mutate(values = 100*values/values[geo == "EU27_2020"]) %>%
  year_to_date() %>%
  ggplot + geom_line(aes(x = date, y = values, color = geo)) + 
  geom_text_repel(data = . %>% group_by(geo) %>% filter(date == max(date)),
                  aes(x = date, y = values, color = geo, label = geo))

Main EU

Code
nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         (geo %in% c("PL", "EU27_2020", "FR", "HU", "DE", "EL", "IT"))) %>%
  select_if(~ n_distinct(.) > 1) %>%
  group_by(time) %>%
  mutate(values = 100*values/values[geo == "EU27_2020"]) %>%
  year_to_date() %>%
  left_join(geo, by  = "geo") %>%
  mutate(Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + theme_minimal() + scale_color_identity() +
  geom_line(aes(x = date, y = values, color = color)) + 
  xlab("") + ylab("") + add_7flags +
  scale_x_date(breaks = seq(1940, 2050, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 200, 10)) +
  geom_text_repel(data = . %>% group_by(geo) %>% filter(date == max(date)),
                  aes(x = date, y = values, color = color, label = Geo)) +
  theme_minimal()

Greece

Code
list_geos_EL <- nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         time == 1995) %>%
  filter(values < values[geo == "EL"]) %>%
  pull(geo)
nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         (geo %in% c("EL", "EU27_2020", list_geos_EL))) %>%
  select_if(~ n_distinct(.) > 1) %>%
  group_by(time) %>%
  mutate(values = 100*values/values[geo == "EU27_2020"]) %>%
  year_to_date() %>%
  left_join(geo, by  = "geo") %>%
  mutate(Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(geo != "EU27_2020") %>%
  ggplot(.) + theme_minimal() + scale_color_identity() +
  geom_line(aes(x = date, y = values, color = color)) + 
  geom_line(data = . %>% filter(geo == "EL"), aes(x = date, y = values, color = color), size = 1.5) + 
  xlab("") + ylab("PPP GDP per capita vs. EU27_2020") + add_8flags +
  scale_x_date(breaks = seq(1995, 2050, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 200, 10)) +
  geom_text_repel(data = . %>% group_by(geo) %>% filter(date %in% c(max(date), min(date))),
                  aes(x = date, y = values, color = color, label = Geo)) +
  theme_minimal()

Greece

Linear

Code
list_geos_EL <- nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         time == 1995) %>%
  filter(values < values[geo == "EL"]) %>%
  pull(geo)

list_geos_EL <- c(list_geos_EL, "FR", "DE")

nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         !(geo %in% c("EA12", "EA19", "EA20","EA", "LU", "NO", "CH", "IE"))) %>%
  select_if(~ n_distinct(.) > 1) %>%
  group_by(time) %>%
  mutate(values = 100*values/values[geo == "EU27_2020"]) %>%
  year_to_date() %>%
  left_join(geo, by  = "geo") %>%
  mutate(Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(geo != "EU27_2020") %>%
  mutate(color = ifelse(!(geo %in% c("EL", "FR", "IT", "PL")), "gray", color)) %>%
  ggplot(.) + theme_minimal() + scale_color_identity() +
  geom_line(aes(x = date, y = values, color = color, group = geo)) + 
  geom_line(data = . %>% filter(geo == "EL"), aes(x = date, y = values, color = color), size = 1.5) + 
  geom_line(data = . %>% filter(geo == "FR"), aes(x = date, y = values, color = color), size = 1.5) + 
  geom_line(data = . %>% filter(geo == "IT"), aes(x = date, y = values, color = color), size = 1.5) + 
  geom_line(data = . %>% filter(geo == "PL"), aes(x = date, y = values, color = color), size = 1.5) + 
  xlab("") + ylab("PPP GDP per capita vs. EU27_2020") + add_8flags +
  scale_x_date(breaks = seq(1995, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(10, 400, 10)) +
  geom_text_repel(data = . %>% group_by(geo) %>% filter(date %in% c(max(date), min(date))),
                  aes(x = date, y = values, color = color, label = Geo)) +
  theme_minimal()

Log

Code
list_geos_EL <- nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         time == 1995) %>%
  filter(values < values[geo == "EL"]) %>%
  pull(geo)

list_geos_EL <- c(list_geos_EL, "FR", "DE")

nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         !(geo %in% c("EA12", "EA19", "EA20","EA"))) %>%
  select_if(~ n_distinct(.) > 1) %>%
  group_by(time) %>%
  mutate(values = 100*values/values[geo == "EU27_2020"]) %>%
  year_to_date() %>%
  left_join(geo, by  = "geo") %>%
  mutate(Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(geo != "EU27_2020") %>%
  mutate(color = ifelse(geo != "EL", "gray", color)) %>%
  ggplot(.) + theme_minimal() + scale_color_identity() +
  geom_line(aes(x = date, y = values, color = color, group = geo)) + 
  geom_line(data = . %>% filter(geo == "EL"), aes(x = date, y = values, color = color), size = 1.5) + 
  xlab("") + ylab("PPP GDP per capita vs. EU27_2020") + add_8flags +
  scale_x_date(breaks = seq(1995, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 400, 10)) +
  geom_text_repel(data = . %>% group_by(geo) %>% filter(date %in% c(max(date), min(date))),
                  aes(x = date, y = values, color = color, label = Geo)) +
  theme_minimal()

With Spain

Code
nama_10_pc %>%
  filter(unit == "CP_PPS_EU27_2020_HAB",
         na_item == "B1GQ",
         (geo %in% c("PL", "EU27_2020", "FR", "HU", "DE", "EL", "IT", "ES", "NL"))) %>%
  select_if(~ n_distinct(.) > 1) %>%
  group_by(time) %>%
  mutate(values = 100*values/values[geo == "EU27_2020"]) %>%
  year_to_date() %>%
  left_join(geo, by  = "geo") %>%
  mutate(Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + theme_minimal() + scale_color_identity() +
  geom_line(aes(x = date, y = values, color = color)) + 
  xlab("") + ylab("") + add_7flags +
  scale_x_date(breaks = seq(1940, 2050, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 200, 10)) +
  geom_text_repel(data = . %>% group_by(geo) %>% filter(date == max(date)),
                  aes(x = date, y = values, color = color, label = Geo)) +
  theme_minimal()