Business enterprise R&D expenditure by main activity (focussed) and source of funds - BERD_MA_SOF

Data - OECD

Last observation: 2020 (N = 4557)

First observation: 2000 (N = 540)

Last data update: 02 août 2026, 08:56

Last compile: 02 sept. 2026, 23:12

Structure

obsTime

Code
BERD_MA_SOF |>
  group_by(obsTime) |>
  summarise(Nobs = n()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

France - 2030

Code
BERD_MA_SOF |>
  filter(COUNTRY == "FRA") |>
  select(obsTime, INDU_MAIN_ACT, SECTFUND, MEASURE, obsValue) |>
  group_by(INDU_MAIN_ACT, SECTFUND, MEASURE) |>
  arrange(obsTime) |>
  summarise(Nobs = n(),
            first = first(obsTime),
            last = last(obsTime)) |>
  print_table_conditional()

Data

Percentage of R&D done in manufacturing

2018

Code
BERD_MA_SOF |>
  filter(obsTime == 2017,
         MEASURE == "DF6",
         SECTFUND == "_T",
         COUNTRY %in% c("DEU", "FRA", "GBR", "ITA")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(Country, INDU_MAIN_ACT, Indu_main_act, obsValue) |>
  spread(Country, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

R&D in industry and telecommunications

2018 (%)

Code
BERD_MA_SOF |>
  filter(obsTime == 2018,
         MEASURE == "DF6",
         SECTFUND == "_T",
         INDU_MAIN_ACT %in% c("C", "J", "_T")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(COUNTRY, Country, Indu_main_act, obsValue) |>
  spread(Indu_main_act, obsValue) |>
  mutate(`MANUFACTURING (C)` = 100*`MANUFACTURING (C)` / `TOTAL BERD`,
         `INFORMATION AND COMMUNICATION (J)` = 100*`INFORMATION AND COMMUNICATION (J)` / `TOTAL BERD`) |>
  arrange(-`MANUFACTURING (C)`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2017

Code
BERD_MA_SOF |>
  filter(obsTime == 2017,
         MEASURE == "DF6",
         SECTFUND == "_T",
         INDU_MAIN_ACT %in% c("C", "J", "_T")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(COUNTRY, Country, Indu_main_act, obsValue) |>
  spread(Indu_main_act, obsValue) |>
  mutate(`MANUFACTURING (C)` = 100*`MANUFACTURING (C)` / `TOTAL BERD`,
         `INFORMATION AND COMMUNICATION (J)` = 100*`INFORMATION AND COMMUNICATION (J)` / `TOTAL BERD`) |>
  arrange(-`MANUFACTURING (C)`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2016

Code
BERD_MA_SOF |>
  filter(obsTime == 2016,
         MEASURE == "DF6",
         SECTFUND == "_T",
         INDU_MAIN_ACT %in% c("C", "J", "_T")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(COUNTRY, Country, Indu_main_act, obsValue) |>
  spread(Indu_main_act, obsValue) |>
  mutate(`MANUFACTURING (C)` = 100*`MANUFACTURING (C)` / `TOTAL BERD`,
         `INFORMATION AND COMMUNICATION (J)` = 100*`INFORMATION AND COMMUNICATION (J)` / `TOTAL BERD`) |>
  arrange(-`MANUFACTURING (C)`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2015

Code
BERD_MA_SOF |>
  filter(obsTime == 2015,
         MEASURE == "DF6",
         SECTFUND == "_T",
         INDU_MAIN_ACT %in% c("C", "J", "_T")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(COUNTRY, Country, Indu_main_act, obsValue) |>
  spread(Indu_main_act, obsValue) |>
  mutate(`MANUFACTURING (C)` = 100*`MANUFACTURING (C)` / `TOTAL BERD`,
         `INFORMATION AND COMMUNICATION (J)` = 100*`INFORMATION AND COMMUNICATION (J)` / `TOTAL BERD`) |>
  arrange(-`MANUFACTURING (C)`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2014

Code
BERD_MA_SOF |>
  filter(obsTime == 2014,
         MEASURE == "DF6",
         SECTFUND == "_T",
         INDU_MAIN_ACT %in% c("C", "J", "_T")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(COUNTRY, Country, Indu_main_act, obsValue) |>
  spread(Indu_main_act, obsValue) |>
  mutate(`MANUFACTURING (C)` = 100*`MANUFACTURING (C)` / `TOTAL BERD`,
         `INFORMATION AND COMMUNICATION (J)` = 100*`INFORMATION AND COMMUNICATION (J)` / `TOTAL BERD`) |>
  arrange(-`MANUFACTURING (C)`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2013

Code
BERD_MA_SOF |>
  filter(obsTime == 2013,
         MEASURE == "DF6",
         SECTFUND == "_T",
         INDU_MAIN_ACT %in% c("C", "J", "_T")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(COUNTRY, Country, Indu_main_act, obsValue) |>
  spread(Indu_main_act, obsValue) |>
  mutate(`MANUFACTURING (C)` = round(100*`MANUFACTURING (C)` / `TOTAL BERD`, 1),
         `INFORMATION AND COMMUNICATION (J)` = round(100*`INFORMATION AND COMMUNICATION (J)` / `TOTAL BERD`, 1)) |>
  arrange(-`MANUFACTURING (C)`) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Country)),
         Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

SECTFUND - Total

2018

Germany, France, UK, Italy

Code
BERD_MA_SOF |>
  filter(obsTime == 2017,
         MEASURE == "DF6",
         SECTFUND == "_T",
         COUNTRY %in% c("DEU", "FRA", "GBR", "ITA")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(Country, INDU_MAIN_ACT, Indu_main_act, obsValue) |>
  spread(Country, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Australia, Austria, UK, US

Code
BERD_MA_SOF |>
  filter(obsTime == 2017,
         MEASURE == "DF6",
         SECTFUND == "_T",
         COUNTRY %in% c("AUS", "AUT", "GBR", "USA")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(Country, INDU_MAIN_ACT, Indu_main_act, obsValue) |>
  spread(Country, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2011

Code
BERD_MA_SOF |>
  filter(obsTime == 2011,
         MEASURE == "DF6",
         SECTFUND == "_T",
         COUNTRY %in% c("DEU", "FRA", "GBR", "ITA")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(Country, INDU_MAIN_ACT, Indu_main_act, obsValue) |>
  spread(Country, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2015

Code
BERD_MA_SOF |>
  filter(obsTime == 2015,
         MEASURE == "DF6",
         SECTFUND == "_T",
         COUNTRY %in% c("DEU", "FRA", "GBR", "ITA")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(Country, INDU_MAIN_ACT, Indu_main_act, obsValue) |>
  spread(Country, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2013

Code
BERD_MA_SOF |>
  filter(obsTime == 2013,
         MEASURE == "DF6",
         SECTFUND == "_T",
         COUNTRY %in% c("DEU", "FRA", "GBR", "ITA")) |>
  left_join(BERD_MA_SOF_var$INDU_MAIN_ACT, by = "INDU_MAIN_ACT") |>
  left_join(BERD_MA_SOF_var$COUNTRY, by = "COUNTRY") |>
  select(Country, INDU_MAIN_ACT, Indu_main_act, obsValue) |>
  spread(Country, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}