knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE)
library(Quandl)

library(tidyverse)

library(lubridate)

library(zoo)
countries = read_csv(paste0(Sys.getenv("USERPROFILE"),
                                 "\\OneDrive - Bank Of Israel\\Data",
                                 "\\IMF\\country_codes.csv"))

indicators = tribble(~"name",~"ticker",
                     "General Government Net Debt, % of GDP",
                     "GGXWDN_NGDP",
                     "General Government Net Debt, USD Billions",
                     "GGXWDN",
                     "General Government Gross Debt, % of GDP",
                     "GGXWDG_NGDP",
                     "General Government Gross Debt, USD Billions",
                     "GGXWDG")


debt_df = countries %>% 
  filter(oecd_member == 1) %>% 
  select(code, country = country_imf_name) %>% 
  full_join(indicators, by = character())

debt_df = debt_df%>% 
  mutate(debt_data = map2(code, ticker, function(code, ticker){

    temp_code = paste0("ODA/",code,"_",ticker)

    temp_df = tryCatch(Quandl(code = temp_code),error = function(e){return(NA)})

    return(temp_df)

  }))


debt_df = debt_df %>% 
  unnest(debt_data) %>% 
  rename_all(tolower)

rm(indicators, countries)

EDA

debt_df %>% 
  # filter(year(date) == 2021) %>% 
  filter(ticker == "GGXWDG_NGDP") %>% 
  filter(country == "Israel") %>% 
  mutate(date = year(date)) %>% 
  tail(50)
  ggplot(aes(x = value, y = reorder(country, value))) + 
  geom_col()


MichaelGurkov/LearningMaterials documentation built on July 9, 2022, 5:17 p.m.