Gross domestic product (GDP) at current market prices by NUTS 2 regions

Data - Eurostat

Info

source dataset .html .RData
eurostat prc_hicp_ctrb 2024-11-05 2024-10-08

LAST_DOWNLOAD

Code
tibble(LAST_DOWNLOAD = as.Date(file.info("~/Library/Mobile\ Documents/com~apple~CloudDocs/website/data/eurostat/nama_10r_2gdp.RData")$mtime)) %>%
  print_table_conditional()
LAST_DOWNLOAD
2024-11-21

LAST_COMPILE

LAST_COMPILE
2024-11-22

Last

Code
nama_10r_2gdp %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2022 2976

unit

Code
nama_10r_2gdp %>%
  left_join(unit, by = "unit") %>%
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
unit Unit Nobs
MIO_EUR Million euro 10340
MIO_NAC Million units of national currency 10340
MIO_PPS_EU27_2020 Million purchasing power standards (PPS, EU27 from 2020) 10340
EUR_HAB Euro per inhabitant 9539
EUR_HAB_EU27_2020 Euro per inhabitant in percentage of the EU27 (from 2020) average 9539
PPS_EU27_2020_HAB Purchasing power standard (PPS, EU27 from 2020), per inhabitant 9539
PPS_HAB_EU27_2020 Purchasing power standard (PPS, EU27 from 2020), per inhabitant in percentage of the EU27 (from 2020) average 9539

geo

Code
nama_10r_2gdp %>%
  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_10r_2gdp %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  print_table_conditional()
time Nobs
2022 2976
2021 3115
2020 3115
2019 3151
2018 3151
2017 3151
2016 3151
2015 3151
2014 3151
2013 3115
2012 3115
2011 3115
2010 3115
2009 3115
2008 3115
2007 2988
2006 2988
2005 2967
2004 2967
2003 2694
2002 2590
2001 2590
2000 2590

France

Table

Code
nama_10r_2gdp %>%
  filter(grepl("FR", geo),
         unit %in% c("EUR_HAB", "PPS_EU27_2020_HAB"),
         time == "2020") %>%
  left_join(geo, by = "geo") %>%
  spread(unit, values) %>%
  mutate(pps = PPS_EU27_2020_HAB/EUR_HAB) %>%
  select(-time) %>%
  arrange(-pps) %>%
  print_table_conditional

Ile de France

Code
nama_10r_2gdp %>%
  filter(unit %in% c("EUR_HAB", "PPS_EU27_2020_HAB"),
         geo %in% c("FRC2", "FR10", "FRG0", "FRD1")) %>%
  left_join(geo, by = "geo") %>%
  spread(unit, values) %>%
  mutate(values = PPS_EU27_2020_HAB/EUR_HAB) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Geo)) + 
  theme_minimal() + xlab("") + ylab("PPS") +
  theme(legend.title = element_blank(),
        legend.position = c(0.75, 0.85)) +
  scale_x_date(breaks = seq(1960, 2026, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 1),
                     labels = percent_format(accuracy = 1))

Germany

Table

Code
nama_10r_2gdp %>%
  filter(grepl("DE", geo),
         unit %in% c("EUR_HAB", "PPS_EU27_2020_HAB"),
         time == "2020") %>%
  left_join(geo, by = "geo") %>%
  spread(unit, values) %>%
  mutate(pps = PPS_EU27_2020_HAB/EUR_HAB) %>%
  select(-time) %>%
  arrange(-pps) %>%
  print_table_conditional

Régions

Code
nama_10r_2gdp %>%
  filter(unit %in% c("EUR_HAB", "PPS_EU27_2020_HAB"),
         geo %in% c("DEB3", "DEE0", "DE40", "DE13")) %>%
  left_join(geo, by = "geo") %>%
  spread(unit, values) %>%
  mutate(values = PPS_EU27_2020_HAB/EUR_HAB) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Geo)) + 
  theme_minimal() + xlab("") + ylab("PPS") +
  theme(legend.title = element_blank(),
        legend.position = c(0.75, 0.15)) +
  scale_x_date(breaks = seq(1960, 2026, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 1),
                     labels = percent_format(accuracy = 1))

Maps

2019

Code
nama_10r_2gdp %>%
  filter(time == "2019",
         unit == "EUR_HAB") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, values) %>%
  right_join(europe_NUTS2, by = "geo") %>%
  filter(long >= -15, lat >= 33) %>%
  ggplot(., aes(x = long, y = lat, group = group, fill = values)) +
  geom_polygon() + coord_map() +
  scale_fill_viridis_c(na.value = "white",
                       labels = scales::dollar_format(accuracy = 1, prefix = "", suffix = "€"),
                       breaks = seq(10000, 120000, 10000),
                       values = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 1)) +
  theme_void() + theme(legend.position = c(0.25, 0.85)) + 
  labs(fill = "GDP Per inhabitant")

2018

Code
nama_10r_2gdp %>%
  filter(time == "2018",
         unit == "EUR_HAB") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, values) %>%
  right_join(europe_NUTS2, by = "geo") %>%
  filter(long >= -15, lat >= 33) %>%
  ggplot(., aes(x = long, y = lat, group = group, fill = values)) +
  geom_polygon() + coord_map() +
  scale_fill_viridis_c(na.value = "white",
                       labels = scales::dollar_format(accuracy = 1, prefix = "", suffix = "€"),
                       breaks = seq(10000, 120000, 10000),
                       values = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 1)) +
  theme_void() + theme(legend.position = c(0.25, 0.85)) + 
  labs(fill = "GDP Per inhabitant")