GDP and main components (output, expenditure and income)

Data - Eurostat

Info

Last observation: Annual: 2024 (N = 1,165)

First observation: Annual: 1980 (N = 60)

Last data update: 23 jul 2026, 23:00. Last compile: 24 jul 2026, 03:46

Structure

R&D Expenditure (% of GDP)

France, Germany, Sweden

Code
rd_e_gerdtot %>%
  filter(geo %in% c("FR", "DE", "SE"),
         sectperf == "TOTAL",
         unit == "PC_GDP") %>%
  year_to_date %>%
  mutate(values = values/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  theme_minimal() + scale_color_identity() + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1980, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Gross domestic R&D expenditure (% of GDP)") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

France: By Sector

Code
rd_e_gerdtot %>%
  filter(geo == "FR",
         sectperf %in% c("BES", "GOV", "HES"),
         unit == "PC_GDP") %>%
  year_to_date %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = Sectperf)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1980, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Gross domestic R&D expenditure (% of GDP)") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Table

R&D

Code
dir.create("rd_e_gerdtot_files/figure-html")
table1 <- rd_e_gerdtot %>%
  filter(time == "2021",
         unit == "PC_GDP",
         !(geo %in% c("EA20", "EA21", "EA19", "EU27_2020", "CN_X_HK"))) %>%
  
  select_if(~ n_distinct(.) > 1) %>%
  select(-sectperf) %>%
  spread(Sectperf, values) %>%
  
  mutate(geo = ifelse(geo == "EL", "GR", geo),
         geo = ifelse(geo == "UK", "GB", geo)) %>%
  select(geo, Geo, everything()) %>%
  gt() %>%
  fmt_number(columns = 3:7 , locale = "fr", decimals = 1, pattern = "{x}%") |>
  cols_align(align = "center", columns = 3:7) |> 
  fmt_flag(columns = geo, height = "1.5em") %>%
  cols_width(3:7 ~ px(50)) |> 
  gt_theme_538()
gtsave(table1, file = "rd_e_gerdtot_files/figure-html/table1-1.png")
ig_d("eurostat", "rd_e_gerdtot", "table1")