Simplified non-financial accounts - SNA_TABLE13

Data - OECD

Layout - By country

  • OECD Website. html

United States

France

Layout - By sector

SS1 - All sectors

SS11_S12 - Corporations

SS13 - General government

SS14_S15 - Households and Non-profits

SECTOR

Code
SNA_TABLE13 %>%
  left_join(SNA_TABLE13_var$SECTOR, by = "SECTOR") %>%
  group_by(SECTOR, Sector) %>%
  summarise(Nobs = n()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Nobs - Javascript

Code
SNA_TABLE13 %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  group_by(TRANSACT, Transact, SECTOR, MEASURE) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Data Structure

Code
SNA_TABLE13_var$VAR_DESC %>%
  print_table_conditional
id description
LOCATION Country
TRANSACT Transaction
SECTOR Sector
MEASURE Measure
TIME Year
OBS_VALUE Observation Value
TIME_FORMAT Time Format
OBS_STATUS Observation Status
UNIT Unit
POWERCODE Unit multiplier
REFERENCEPERIOD Reference period

TRANSACT

Code
SNA_TABLE13 %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  group_by(TRANSACT, Transact) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ex: 2018

United States

Code
SNA_TABLE13 %>%
  filter(LOCATION == "USA",
         obsTime == "2018") %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(SECTOR, TRANSACT, Transact, obsValue) %>%
  spread(SECTOR, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Germany

Code
SNA_TABLE13 %>%
  filter(LOCATION == "DEU",
         obsTime == "2018") %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(SECTOR, TRANSACT, Transact, obsValue) %>%
  spread(SECTOR, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

France

Code
SNA_TABLE13 %>%
  filter(LOCATION == "FRA",
         obsTime == "2018") %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(SECTOR, TRANSACT, Transact, obsValue) %>%
  spread(SECTOR, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Japan

Code
SNA_TABLE13 %>%
  filter(LOCATION == "JPN",
         obsTime == "2018") %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(SECTOR, TRANSACT, Transact, obsValue) %>%
  spread(SECTOR, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

United Kingdom

Code
SNA_TABLE13 %>%
  filter(LOCATION == "GBR",
         obsTime == "2018") %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(SECTOR, TRANSACT, Transact, obsValue) %>%
  spread(SECTOR, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2016 - China

Code
SNA_TABLE13 %>%
  filter(LOCATION == "CHN",
         obsTime == "2016") %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(SECTOR, TRANSACT, Transact, obsValue) %>%
  spread(SECTOR, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ex: United States

SS1 - All sectors

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS1",
         LOCATION == "USA") %>%
  filter(obsTime %in% c("1970", "1980", "1990", "2000", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS11_S12 - Corporations

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS11_S12",
         LOCATION == "USA") %>%
  filter(obsTime %in% c("1970", "1980", "1990", "2000", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS13 - General government

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS11_S12",
         LOCATION == "USA") %>%
  filter(obsTime %in% c("1970", "1980", "1990", "2000", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS14_S15 - Households and Non-profits

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS14_S15",
         LOCATION == "USA") %>%
  filter(obsTime %in% c("1970", "1980", "1990", "2000", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ex: France

SS1 - All sectors

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS1",
         LOCATION == "FRA") %>%
  filter(obsTime %in% c("1950", "1970", "1990", "2010", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS11_S12 - Corporations

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS11_S12",
         LOCATION == "USA") %>%
  filter(obsTime %in% c("1970", "1980", "1990", "2000", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS13 - General government

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS11_S12",
         LOCATION == "USA") %>%
  filter(obsTime %in% c("1970", "1980", "1990", "2000", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS14_S15 - Households and Non-profits

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS14_S15",
         LOCATION == "USA") %>%
  filter(obsTime %in% c("1970", "1980", "1990", "2000", "2018")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ex: Japan

SS1 - All sectors

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS1",
         LOCATION == "JPN",
         obsTime %in% c("1994", "2002", "2010", "2017")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS11_S12 - Corporations

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS11_S12",
         LOCATION == "JPN",
         obsTime %in% c("1994", "2002", "2010", "2017")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS13 - General government

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS11_S12",
         LOCATION == "JPN",
         obsTime %in% c("1994", "2002", "2010", "2017")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SS14_S15 - Households and Non-profits

Code
SNA_TABLE13 %>%
  filter(SECTOR == "SS14_S15",
         LOCATION == "JPN",
         obsTime %in% c("1994", "2002", "2010", "2017")) %>%
  left_join(SNA_TABLE13_var$TRANSACT, by = "TRANSACT") %>%
  left_join(SNA_TABLE1_B1_GE, by = c("LOCATION", "obsTime")) %>%
  mutate(obsValue = round(100*obsValue / B1_GE, 1) %>% paste0(., "%")) %>%
  select(obsTime, TRANSACT, Transact, obsValue) %>%
  spread(obsTime, obsValue) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ex 1: Gross capital formation (% of GDP)

Code
SNA_TABLE13 %>%
  # NFK1R: Consumption of fixed capital
  filter(TRANSACT %in% c("SP5P", "B1_GE"), #
         # SS1: Total economy
         SECTOR == "SS1") %>%
  left_join(SNA_TABLE13_var$LOCATION, by = "LOCATION") %>%
  select(Location, TRANSACT, obsTime, obsValue) %>%
  spread(TRANSACT, obsValue) %>%
  na.omit %>%
  mutate(SP5P_B1_GE = (100*SP5P / B1_GE)  %>% round(1) %>% paste("%")) %>%
  select(Location, obsTime, SP5P_B1_GE) %>%
  group_by(Location) %>%
  summarise(year_first = first(obsTime),
            value_first = first(SP5P_B1_GE),
            year_last = last(obsTime),
            value_last = last(SP5P_B1_GE)) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ex 2: Consumption of fixed capital (% of GDP)

Code
SNA_TABLE13 %>%
  # NFK1R: Consumption of fixed capital
  filter(TRANSACT %in% c("SK1R", "B1_GE"), 
         SECTOR == "SS1") %>%
  left_join(SNA_TABLE13_var$LOCATION, by = "LOCATION") %>%
  select(Location, TRANSACT, obsTime, obsValue) %>%
  spread(TRANSACT, obsValue) %>%
  na.omit %>%
  mutate(SK1R_B1_GE = (100*SK1R / B1_GE)  %>% round(1) %>% paste("%")) %>%
  select(Location, obsTime, SK1R_B1_GE) %>%
  group_by(Location) %>%
  summarise(year_first = first(obsTime),
            value_first = first(SK1R_B1_GE),
            year_last = last(obsTime),
            value_last = last(SK1R_B1_GE)) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ex 3: Net capital formation (% of GDP)

Code
SNA_TABLE13 %>%
  # NFK1R: Consumption of fixed capital
  filter(TRANSACT %in% c("SP5P", "B1_GE", "SK1R"), 
         SECTOR == "SS1") %>%
  left_join(SNA_TABLE13_var$LOCATION, by = "LOCATION") %>%
  select(Location, TRANSACT, obsTime, obsValue) %>%
  spread(TRANSACT, obsValue) %>%
  na.omit %>%
  mutate(net_inv_B1_GE = (100*(SP5P-SK1R) / B1_GE)  %>% round(1) %>% paste("%")) %>%
  select(Location, obsTime, net_inv_B1_GE) %>%
  group_by(Location) %>%
  summarise(year_first = first(obsTime),
            value_first = first(net_inv_B1_GE),
            year_last = last(obsTime),
            value_last = last(net_inv_B1_GE)) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}