Gross domestic expenditure on research and development (R&D) - tipsst10

Data - Eurostat

Info

DOWNLOAD_TIME

Code
tibble(DOWNLOAD_TIME = as.Date(file.info("~/Library/Mobile\ Documents/com~apple~CloudDocs/website/data/eurostat/tipsst10.RData")$mtime)) %>%
  print_table_conditional()
DOWNLOAD_TIME
2024-10-08

Last

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

geo

All

Code
tipsst10 %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

eurozone

Code
geo <- geo %>%
  mutate(eurozone = ifelse(Geo %in% c("Austria", "Belgium", "Cyprus", "Estonia", "Finland", "France", 
                                      "Germany", "Greece", "Ireland", "Italy", "Latvia", "Lithuania", 
                                      "Luxembourg", "Malta", "Netherlands", "Portugal", "Slovakia",
                                      "Slovenia", "Spain"), T, F),
         non_eurozone = ifelse(Geo %in% c("Bulgaria", "Croatia", "Czechia", "Denmark", 
                                          "Hungary", "Poland", "Romania", "Sweden"), T, F))
tipsst10 %>%
  left_join(geo, by = "geo") %>%
  filter(eurozone) %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

unit

Code
tipsst10 %>%
  left_join(unit, by = "unit") %>%
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
unit Unit Nobs
PC_GDP Percentage of gross domestic product (GDP) 767
MIO_NAC Million units of national currency 721

time

Code
tipsst10 %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  arrange(desc(time)) %>%
  print_table_conditional()
time Nobs
2022 56
2021 56
2020 56
2019 56
2018 56
2017 56
2016 56
2015 56
2014 56
2013 56
2012 56
2011 56
2010 56
2009 56
2008 56
2007 56
2006 56
2005 56
2004 56
2003 56
2002 50
2001 50
2000 48
1999 48
1998 44
1997 44
1996 40
1995 44

France, Germany, Italy, Spain, Netherlands

Code
tipsst10 %>%
  filter(geo %in% c("DE", "ES", "FR", "IT", "NL"),
         unit == "PC_GDP") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2020, 2), "-01-01")),
               labels = date_format("%y")) +
  xlab("") + ylab("GDP growth") +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 2),
                     labels = scales::percent_format(accuracy = 1))

France, Germany, Italy, Spain, Portugal

Code
tipsst10 %>%
  filter(geo %in% c("FR", "DE", "PT", "ES", "IT"),
         unit == "PC_GDP") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2020, 2), "-01-01")),
               labels = date_format("%y")) +
  xlab("") + ylab("GDP growth") +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 2),
                     labels = scales::percent_format(accuracy = 1))

France, Germany, Portugal

Code
tipsst10 %>%
  filter(geo %in% c("FR", "DE", "PT"),
         unit == "PC_GDP") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  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(1960, 2020, 2), "-01-01")),
               labels = date_format("%y")) +
  xlab("") + ylab("GDP growth") +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 2),
                     labels = scales::percent_format(accuracy = 1))

Poland, Hungary, Slovenia

Code
tipsst10 %>%
  filter(geo %in% c("PL", "HU", "SI"),
         unit == "PC_GDP") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  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(1960, 2020, 2), "-01-01")),
               labels = date_format("%y")) +
  xlab("") + ylab("GDP growth") +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 2),
                     labels = scales::percent_format(accuracy = 1))

Mean, Standard Deviation

All

Viridis

Code
tipsst10 %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  filter(unit == "PC_GDP") %>%
  {if (eurozone) filter(., eurozone) else .} %>%
  group_by(date) %>%
  filter(n() == 19) %>%
  summarise(`Moyenne` = mean(values),
            `Ecart Type` = sd(values)) %>%
  transmute(date, `Moyenne`,
            `Moyenne + SD` = `Moyenne` + `Ecart Type`,
            `Moyenne - SD` = `Moyenne` - `Ecart Type`) %>%
  gather(variable, value, -date) %>%
  mutate(value = value/100) %>%
  ggplot + geom_line(aes(x = date, y = value, color = variable, linetype = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_color_manual(values = c(viridis(3)[1], viridis(3)[2], viridis(3)[2])) +
  scale_linetype_manual(values = c("solid", "dashed", "dashed")) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2020, 2), "-01-01")),
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Colors

Code
tipsst10 %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  filter(unit == "PC_GDP") %>%
  {if (eurozone) filter(., eurozone) else .} %>%
  group_by(date) %>%
  filter(n() == 19) %>%
  summarise(`Moyenne` = mean(values),
            `Ecart Type` = sd(values)) %>%
  transmute(date, `Moyenne`,
            `Moyenne + SD` = `Moyenne` + `Ecart Type`,
            `Moyenne - SD` = `Moyenne` - `Ecart Type`) %>%
  gather(variable, value, -date) %>%
  mutate(value = value/100) %>%
  ggplot + geom_line(aes(x = date, y = value, color = variable, linetype = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_color_manual(values = c("#003399", "#FFCC00", "#FFCC00")) +
  scale_linetype_manual(values = c("solid", "dashed", "dashed")) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2022, 1), "-01-01")),
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

With France

Code
tipsst10 %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  filter(unit == "PC_GDP") %>%
  {if (eurozone) filter(., eurozone) else .} %>%
  group_by(date) %>%
  filter(n() == 19) %>%
  summarise(`Moyenne Europe` = mean(values),
            `Ecart Type` = sd(values),
            `France` = values[geo == "FR"]) %>%
  transmute(date, `Moyenne Europe`,
            `Moyenne Europe + SD` = `Moyenne Europe` + `Ecart Type`,
            `Moyenne Europe - SD` = `Moyenne Europe` - `Ecart Type`,
             `France`) %>%
  gather(variable, value, -date) %>%
  mutate(values = value/100,
         Geo = ifelse(variable == "France", "France", "Europe")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = variable, linetype = variable)) +
  theme_minimal() + xlab("") + ylab("") + add_4flags +
  scale_color_manual(values = c("#ED2939", "#003399", "#FFCC00", "#FFCC00")) +
  scale_linetype_manual(values = c("solid", "solid", "dashed", "dashed")) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2020, 1), "-01-01")),
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  theme(legend.position = c(0.75, 0.2),
        legend.title = element_blank())

With Germany

Code
tipsst10 %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  filter(unit == "PC_GDP") %>%
  {if (eurozone) filter(., eurozone) else .} %>%
  group_by(date) %>%
  filter(n() == 19) %>%
  summarise(`Moyenne Europe` = mean(values),
            `Ecart Type` = sd(values),
            `France` = values[geo == "FR"],
            `Allemagne` = values[geo == "DE"]) %>%
  transmute(date, `Moyenne Europe`,
            `Moyenne Europe + SD` = `Moyenne Europe` + `Ecart Type`,
            `Moyenne Europe - SD` = `Moyenne Europe` - `Ecart Type`,
             `France`,
             `Allemagne`) %>%
  gather(variable, value, -date) %>%
  mutate(values = value/100,
         Geo = ifelse(variable == "France", "France", "Europe"),
         Geo = ifelse(variable == "Allemagne", "Germany", Geo)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = variable, linetype = variable)) +
  theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_color_manual(values = c("#000000", "#ED2939", "#003399", "#FFCC00", "#FFCC00")) +
  scale_linetype_manual(values = c("solid", "solid", "solid", "dashed", "dashed")) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2020, 1), "-01-01")),
               labels = date_format("%y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, .5),
                     labels = scales::percent_format(accuracy = .1)) +
  theme(legend.position = c(0.75, 0.2),
        legend.title = element_blank())