title: “IFS_Data” author: “Jose A Mendoza” date: “6 de marzo de 2019” output: html_document —

Using and downloading R’s IMFData

The IMFData library allows accessing IMF data. The list of available datasets can be access via the IMF’s webpage or by using DataflowMethod() function, though an internal bug on the source code returns an error which I have not solved yet.

availableDB <- DataflowMethod()
availableDB$DatabaseID
Error: lexical error: invalid char in json text.
                                       <?xml version="1.0" encoding="u
                     (right here) ------^
In addition: Warning message:
JSON string contains (illegal) UTF8 byte-order-mark! 
Called from: parse_string(txt, bigint_as_char)

The full list of dataset retrieve from this page. Each ID and description is presented as follows:

#>  [1] "FSIRE"         "FAS"           "IFS"           "MCDREO"       
#>  [5] "FSIBS"         "FSI"           "DOT"           "FSIREM"       
#>  [9] "CDIS"          "GFS01M"        "GFS01"         "BOP"          
#> [13] "BOPAGG"        "CPIS"          "APDREO"        "FM"           
#> [17] "AFRREO"        "MCDREO201410"  "FM201410"      "AFRREO201410" 
#> [21] "MCDREO201501"  "APDREO201410"  "COMMP"         "COMMPP"       
#> [25] "WoRLD"         "GFSR"          "GFSSSUC"       "GFSCOFOG"     
#> [29] "GFSFALCS"      "GFSIBS"        "GFSMAB"        "GFSE"         
#> [33] "PGI"           "WHDREO201504"  "WCED"          "WHDREO"       
#> [37] "FM201504"      "APDREO201504"  "MCDREO201505"  "AFRREO201504" 
#> [41] "CDISARCHIVE"   "ICSD"          "HPDD"          "COFR"         
#> [45] "CPI"           "IRFCL"         "COFER"         "FM201510"     
#> [49] "RAFIT2AGG"     "MCDREO201510"  "WHDREO201510"  "APDREO201510" 
#> [53] "AFRREO201510"  "GFSYR2014"     "GFSYSSUC2014"  "GFSYCOFOG2014"
#> [57] "GFSYIBS2014"   "GFSYMAB2014"   "GFSYFALCS2014" "GFSYE2014"    
#> [61] "GFSIBS2015"    "GFSR2015"      "GFSFALCS2015"  "GFSSSUC2015"  
#> [65] "GFSMAB2015"    "GFSCOFOG2015"  "GFSE2015"      "BOPSDMXUSD"
#>  [1] "Financial Soundness Indicators (FSI), Reporting Entities"                                                                          
#>  [2] "Financial Access Survey (FAS)"                                                                                                     
#>  [3] "International Financial Statistics (IFS)"                                                                                          
#>  [4] "Middle East and Central Asia Regional Economic Outlook (MCDREO)"                                                                   
#>  [5] "Financial Soundness Indicators (FSI), Balance Sheets"                                                                              
#>  [6] "Financial Soundness Indicators (FSI)"                                                                                              
#>  [7] "Direction of Trade Statistics (DOTS)"                                                                                              
#>  [8] "Financial Soundness Indicators (FSI), Reporting Entities - Multidimensional"                                                       
#>  [9] "Coordinated Direct Investment Survey (CDIS)"                                                                                       
#> [10] "Government Finance Statistics (GFS 2001) - Multidimensional"                                                                       
#> [11] "Government Finance Statistics (GFS 2001)"                                                                                          
#> [12] "Balance of Payments (BOP)"                                                                                                         
#> [13] "Balance of Payments (BOP), World and Regional Aggregates"                                                                          
#> [14] "Coordinated Portfolio Investment Survey (CPIS)"                                                                                    
#> [15] "Asia and Pacific Regional Economic Outlook (APDREO)"                                                                               
#> [16] "Fiscal Monitor (FM)"                                                                                                               
#> [17] "Sub-Saharan Africa Regional Economic Outlook (AFRREO)"                                                                             
#> [18] "MCD Regional Economic Outlook October 2014"                                                                                        
#> [19] "Fiscal Monitor (FM) October 2014"                                                                                                  
#> [20] "Sub-Saharan Africa Regional Economic Outlook (AFRREO) October 2014"                                                                
#> [21] "MCD Regional Economic Outlook January 2015"                                                                                        
#> [22] "Asia and Pacific Regional Economic Outlook (APDREO) October 2014"                                                                  
#> [23] "Primary Commodity Prices"                                                                                                          
#> [24] "Primary Commodity Prices Projections"                                                                                              
#> [25] "World Revenue Longitudinal Data (WoRLD)"                                                                                           
#> [26] "Government Finance Statistics (GFS), Revenue"                                                                                      
#> [27] "Government Finance Statistics (GFS), Statement of Sources and Uses of Cash"                                                        
#> [28] "Government Finance Statistics (GFS), Expenditure by Function of Government (COFOG)"                                                
#> [29] "Government Finance Statistics (GFS), Financial Assets and Liabilities by Counterpart Sector"                                       
#> [30] "Government Finance Statistics (GFS), Integrated Balance Sheet (Stock Positions and Flows in Assets and Liabilities)"               
#> [31] "Government Finance Statistics (GFS), Main Aggregates and Balances"                                                                 
#> [32] "Government Finance Statistics (GFS), Expense"                                                                                      
#> [33] "Principal Global Indicators (PGI)"                                                                                                 
#> [34] "Western Hemisphere Regional Economic Outlook (WHDREO) April 2015"                                                                  
#> [35] "World Commodity Exporters (WCED)"                                                                                                  
#> [36] "Western Hemisphere Regional Economic Outlook (WHDREO)"                                                                             
#> [37] "Fiscal Monitor (FM) April 2015"                                                                                                    
#> [38] "Asia and Pacific Regional Economic Outlook (APDREO) April 2015"                                                                    
#> [39] "MCD Regional Economic Outlook May 2015"                                                                                            
#> [40] "Sub-Saharan Africa Regional Economic Outlook (AFRREO) April 2015"                                                                  
#> [41] "Coordinated Direct Investment Survey (CDIS) - Archive"                                                                             
#> [42] "Investment and Capital Stock (ICSD)"                                                                                               
#> [43] "Historical Public Debt (HPDD)"                                                                                                     
#> [44] "Coverage of Fiscal Reporting (COFR)"                                                                                               
#> [45] "Consumer Price Index (CPI)"                                                                                                        
#> [46] "International Reserves and Foreign Currency Liquidity (IRFCL)"                                                                     
#> [47] "Currency Composition of Official Foreign Exchange Reserves (COFER)"                                                                
#> [48] "Fiscal Monitor (FM) October 2015"                                                                                                  
#> [49] "RA-FIT Round 2 Aggregates"                                                                                                         
#> [50] "MCD Regional Economic Outlook (MCDREO) October 2015"                                                                               
#> [51] "Western Hemisphere Regional Economic Outlook (WHDREO) October 2015"                                                                
#> [52] "Asia and Pacific Regional Economic Outlook (APDREO) October 2015"                                                                  
#> [53] "Sub-Saharan Africa Regional Economic Outlook (AFRREO) October 2015"                                                                
#> [54] "Government Finance Statistics Yearbook (GFSY 2014), Revenue"                                                                       
#> [55] "Government Finance Statistics Yearbook (GFSY 2014), Statement of Sources and Uses of Cash"                                         
#> [56] "Government Finance Statistics Yearbook (GFSY 2014), Expenditure by Function of Government (COFOG)"                                 
#> [57] "Government Finance Statistics Yearbook (GFSY 2014), Integrated Balance Sheet (Stock Positions and Flows in Assets and Liabilities)"
#> [58] "Government Finance Statistics Yearbook (GFSY 2014), Main Aggregates and Balances"                                                  
#> [59] "Government Finance Statistics Yearbook (GFSY 2014), Financial Assets and Liabilities by Counterpart Sector"                        
#> [60] "Government Finance Statistics Yearbook (GFSY 2014), Expense"                                                                       
#> [61] "Government Finance Statistics Yearbook (GFSY 2015), Integrated Balance Sheet (Stock Positions and Flows in Assets and Liabilities)"
#> [62] "Government Finance Statistics Yearbook (GFSY 2015), Revenue"                                                                       
#> [63] "Government Finance Statistics Yearbook (GFSY 2015), Financial Assets and Liabilities by Counterpart Sector"                        
#> [64] "Government Finance Statistics Yearbook (GFSY 2015), Statement of Sources and Uses of Cash"                                         
#> [65] "Government Finance Statistics Yearbook (GFSY 2015), Main Aggregates and Balances"                                                  
#> [66] "Government Finance Statistics Yearbook (GFSY 2015), Expenditure by Function of Government (COFOG)"                                 
#> [67] "Government Finance Statistics Yearbook (GFSY 2015), Expense"                                                                       
#> [68] "Balance of Payments (BOP), Global SDMX (US Dollars)"

After choosing one of the dataset (e.g. “IFS” for International Financial Statistics), data can retrieve by using DataStructureMethod function. A list with 3 data frames is created: [1] CL_FREQ for frequancy of variables, [2] CL_AREA_IFS for countries and areas (both a full name and a small ID is included for every country), and [3] CL_INDICATOR_IFS for particular series (both an ID and the description is included within the data frame).

library(IMFData)
library(jsonlite)
IFS.available.codes <- DataStructureMethod('IFS') 
names(IFS.available.codes)
## [1] "CL_FREQ"          "CL_AREA_IFS"      "CL_INDICATOR_IFS"

To obtain a particular or a host of series we can use the CodeSearch function. As an example, we can look for all series that include for word “GDP” on its description.

ALLGDPCodeValue <- CodeSearch(IFS.available.codes, "CL_INDICATOR_IFS","GDP")
#ALLGDPCodeValue$CodeText #To obtain description
ALLGDPCodeValue$CodeValue #Obtain only ID for each series
##   [1] "NC_GDP_PT"               "NI_GDP_PT"              
##   [3] "NYGDP_XDC"               "NYGDP_SA_XDC"           
##   [5] "NGDP_D_IX"               "NGDP_D_PC_CP_A_PT"      
##   [7] "NGDP_D_PC_CP_A_SA_PT"    "NGDP_D_PC_PP_PT"        
##   [9] "NGDP_D_PC_PP_SA_PT"      "NGDP_D_SA_IX"           
##  [11] "NGDP_XDC"                "NGDP_PC_CP_A_PT"        
##  [13] "NGDP_PC_CP_A_SA_PT"      "NGDP_PC_PP_PT"          
##  [15] "NGDP_PC_PP_SA_PT"        "NGDP_SA_XDC"            
##  [17] "NGDP_R_XDC"              "NGDP_R_PC_CP_A_PT"      
##  [19] "NGDP_R_PC_CP_A_SA_PT"    "NGDP_R_PC_PP_PT"        
##  [21] "NGDP_R_PC_PP_SA_PT"      "NGDP_R_CH_XDC"          
##  [23] "NGDP_R_CH_SA_XDC"        "NGDP_R_SA_XDC"          
##  [25] "NGDP_R_K_XDC"            "NGDP_R_K_IX"            
##  [27] "NGDP_R_K_SA_XDC"         "NGDP_R_K_SA_IX"         
##  [29] "NGDP_PA_XDC"             "NGDP_PA_SA_XDC"         
##  [31] "NGDPVA_ISIC4_D_XDC"      "NGDPVA_ISIC4_D_SA_XDC"  
##  [33] "NGDPVA_ISIC4_I_XDC"      "NGDPVA_ISIC4_I_SA_XDC"  
##  [35] "NGDPVA_ISIC4_U_XDC"      "NGDPVA_ISIC4_U_SA_XDC"  
##  [37] "NGDPVA_ISIC4_T_XDC"      "NGDPVA_ISIC4_T_SA_XDC"  
##  [39] "NGDPVA_ISIC4_N_XDC"      "NGDPVA_ISIC4_N_SA_XDC"  
##  [41] "NGDPVA_ISIC4_A_XDC"      "NGDPVA_ISIC4_A_SA_XDC"  
##  [43] "NGDPVA_ISIC4_MTO_XDC"    "NGDPVA_ISIC4_MTO_SA_XDC"
##  [45] "NGDPVA_ISIC4_F_XDC"      "NGDPVA_ISIC4_F_SA_XDC"  
##  [47] "NGDPVA_ISIC4_P_XDC"      "NGDPVA_ISIC4_PTQ_XDC"   
##  [49] "NGDPVA_ISIC4_PTQ_SA_XDC" "NGDPVA_ISIC4_P_SA_XDC"  
##  [51] "NGDPVA_ISIC4_K_XDC"      "NGDPVA_ISIC4_K_SA_XDC"  
##  [53] "NGDPVA_ISIC4_Q_XDC"      "NGDPVA_ISIC4_Q_SA_XDC"  
##  [55] "NGDPVA_ISIC4_BTF_XDC"    "NGDPVA_ISIC4_BTF_SA_XDC"
##  [57] "NGDPVA_ISIC4_C_XDC"      "NGDPVA_ISIC4_C_SA_XDC"  
##  [59] "NGDPVA_ISIC4_B_XDC"      "NGDPVA_ISIC4_B_SA_XDC"  
##  [61] "NGDPVA_ISIC4_S_XDC"      "NGDPVA_ISIC4_S_SA_XDC"  
##  [63] "NGDPVA_ISIC4_M_XDC"      "NGDPVA_ISIC4_M_SA_XDC"  
##  [65] "NGDPVA_ISIC4_O_XDC"      "NGDPVA_ISIC4_O_SA_XDC"  
##  [67] "NGDPVA_ISIC4_L_XDC"      "NGDPVA_ISIC4_L_SA_XDC"  
##  [69] "NGDPVA_ISIC4_G_XDC"      "NGDPVA_ISIC4_G_SA_XDC"  
##  [71] "NGDPVA_ISIC4_GTL_XDC"    "NGDPVA_ISIC4_GTL_SA_XDC"
##  [73] "NGDPVA_ISIC4_J_XDC"      "NGDPVA_ISIC4_J_SA_XDC"  
##  [75] "NGDPVA_ISIC4_H_XDC"      "NGDPVA_ISIC4_H_SA_XDC"  
##  [77] "NGDPVA_ISIC4_E_XDC"      "NGDPVA_ISIC4_E_SA_XDC"  
##  [79] "NGDPVA_XDC"              "NGDPVA_SA_XDC"          
##  [81] "NGDPVA_ISIC4_R_XDC"      "NGDPVA_ISIC4_R_SA_XDC"  
##  [83] "NGDPVA_ISIC4_RTU_XDC"    "NGDPVA_ISIC4_RTU_SA_XDC"
##  [85] "NGDPNPI_XDC"             "NGDPNPI_SA_XDC"         
##  [87] "NGDPNPI_USD"             "NSDGDP_XDC"             
##  [89] "NSDGDP_SA_XDC"           "NSDGDP_USD"             
##  [91] "NSDGDP_R_CH_SA_XDC"      "NSDGDP_R_XDC"           
##  [93] "NSDGDP_R_PYP_XDC"        "NSDGDP_R_PYP_SA_XDC"    
##  [95] "NSDGDP_R_CH_XDC"         "NSDGDP_R_SA_XDC"        
##  [97] "NGDPSOP_XDC"             "NGDPSOP_SA_XDC"         
##  [99] "NGDPSOP_R_XDC"           "NGDPSOP_R_PYP_XDC"      
## [101] "NGDPSOP_R_PYP_SA_XDC"    "NGDPSOP_R_CH_XDC"       
## [103] "NGDPSOP_R_CH_SA_XDC"     "NGDPSOP_R_SA_XDC"       
## [105] "NGDPSOP_R_K_XDC"         "NGDPSOP_R_K_IX"         
## [107] "NGDPSOP_R_K_SA_XDC"      "NGDPSOP_R_K_SA_IX"      
## [109] "NGDPT_XDC"               "NGDPT_SA_XDC"           
## [111] "NGDPT_R_XDC"             "NGDPT_R_PYP_XDC"        
## [113] "NGDPT_R_PYP_SA_XDC"      "NGDPT_R_CH_XDC"         
## [115] "NGDPT_R_CH_SA_XDC"       "NGDPT_R_SA_XDC"         
## [117] "NGDPT_R_K_XDC"           "NGDPT_R_K_IX"           
## [119] "NGDPT_R_K_SA_XDC"        "NGDPT_R_K_SA_IX"        
## [121] "NNITSPX_XDC"             "NNITSPX_SA_XDC"

Lets obtain real LCU GDP, or ALLGDPCodeValue$CodeValue[16]. In order to do this, some previous variables should be created: the selected dataset, IFS in our case; starting date, in a yymmdd format; ending date; checkquery, to check whether the ID is available; and, queryfilter, a list with requested specific characteristic (frequency, country/ies and indicator’s ID) to filter the query. Additionally, two further options are available: verbose, to print the exact API; and, tidy to return data with a simple data frame format.

databaseID <- 'IFS'
startdate='2015-01-01'
enddate='2016-12-31'
checkquery = TRUE
queryfilter <- list(CL_FREA="Q", CL_AREA_IFS="US", CL_INDICATOR_IFS =ALLGDPCodeValue[17])

After setting these values we use CompactDataMethod to call for the selected series. The previous values created are used as arguments for this function.

library(IMFData)
library(jsonlite)
library(ggplot2) 
IFS.available.codes <- DataStructureMethod('IFS')

databaseID <- 'IFS'
startdate='2000-01-01'
enddate='2010-12-31'
checkquery = FALSE

ALLGDPCodeValue <- CodeSearch(IFS.available.codes, "CL_INDICATOR_IFS","GDP")$CodeValue

queryfilter <- list(CL_FREA="Q", CL_AREA_IFS="US", CL_INDICATOR_IFS =ALLGDPCodeValue[16])
queryfilter
## $CL_FREA
## [1] "Q"
## 
## $CL_AREA_IFS
## [1] "US"
## 
## $CL_INDICATOR_IFS
## [1] "NGDP_SA_XDC"
Q.US.GDP.query <- CompactDataMethod(databaseID, queryfilter, startdate, enddate, checkquery)
Q.US.GDP.query <- CompactDataMethod(databaseID, queryfilter, startdate, enddate, checkquery)
#Q.US.GDP.query[,1:6]

Each data frame Q.US.GDP.query is compound by 6 columns: @FREQ, @REF_AREA, @INDICATOR, @UNIT_MULT, @TIME_FORMAT y @Obs. To show each value we use:

Q.US.GDP.query$Obs[[1]]
##    @TIME_PERIOD @OBS_VALUE
## 1       2000-Q1   10002857
## 2       2000-Q2   10247679
## 3       2000-Q3   10319825
## 4       2000-Q4   10439025
## 5       2001-Q1   10472879
## 6       2001-Q2   10597822
## 7       2001-Q3   10596294
## 8       2001-Q4   10660294
## 9       2002-Q1   10788952
## 10      2002-Q2   10893207
## 11      2002-Q3   10992051
## 12      2002-Q4   11071463
## 13      2003-Q1   11183507
## 14      2003-Q2   11312875
## 15      2003-Q3   11567326
## 16      2003-Q4   11769275
## 17      2004-Q1   11920169
## 18      2004-Q2   12108987
## 19      2004-Q3   12303340
## 20      2004-Q4   12522425
## 21      2005-Q1   12761337
## 22      2005-Q2   12910022
## 23      2005-Q3   13142873
## 24      2005-Q4   13332316
## 25      2006-Q1   13603933
## 26      2006-Q2   13749806
## 27      2006-Q3   13867469
## 28      2006-Q4   14037228
## 29      2007-Q1   14208569
## 30      2007-Q2   14382363
## 31      2007-Q3   14535003
## 32      2007-Q4   14681501
## 33      2008-Q1   14651039
## 34      2008-Q2   14805611
## 35      2008-Q3   14835187
## 36      2008-Q4   14559543
## 37      2009-Q1   14394547
## 38      2009-Q2   14352850
## 39      2009-Q3   14420312
## 40      2009-Q4   14628021
## 41      2010-Q1   14721350
## 42      2010-Q2   14926098
## 43      2010-Q3   15079917
## 44      2010-Q4   15240843

The series can be manipulated after transforming the format from character to numeric.

plot(log(as.numeric(unlist(Q.US.GDP.query$Obs[[1]][2]))), main="Real GDP on Local Currency Unit", xlab="Quarters", ylab="Ln of GDP", type="l")