⚠️ This package is no longer maintained as the underlying API has been decommissioned; please use for example imfapi for this functionality for the new IMF API.
The goal of imf.data is to provide an interface to IMF Data via the IMF Data REST API.
Usage
library(imf.data)
# list all available time-series
list_datasets()
#> ID Description
#> 1 AFRREO Sub-Saharan Africa Regional Economic Outlook (AFRREO)
#> 2 AFRREO201410 Sub-Saharan Africa Regional Economic Outlook (AFRREO) October 2014
#> 3 AFRREO201504 Sub-Saharan Africa Regional Economic Outlook (AFRREO) April 2015
#> 4 AFRREO201510 Sub-Saharan Africa Regional Economic Outlook (AFRREO) October 2015
#> 5 AFRREO201604 Sub-Saharan Africa Regional Economic Outlook (AFRREO) April 2016
#> 6 AFRREO201610 Sub-Saharan Africa Regional Economic Outlook (AFRREO) October 2016
#> 7 AFRREO201704 Sub-Saharan Africa Regional Economic Outlook (AFRREO) April 2017
#> [ reached 'max' / getOption("max.print") -- omitted 316 rows ]
# load IFS time-series
IFS <- load_datasets("IFS")
# see possible values for dimension 'ref_area'
IFS$dimensions$ref_area
#> Value Description
#> 1 AF Afghanistan
#> 2 AL Albania
#> 3 DZ Algeria
#> 4 AD Andorra
#> 5 AO Angola
#> 6 AI Anguilla
#> 7 AG Antigua and Barbuda
#> [ reached 'max' / getOption("max.print") -- omitted 264 rows ]
# get time-series for GDP of Portugal, with Annual frequency
IFS$get_series(freq = "A", ref_area = "PT", indicator = "NGDP_D_IX")
#> TIME_PERIOD A.PT.NGDP_D_IX
#> 1 1995 65.121159550493
#> 2 1996 66.6781968283958
#> 3 1997 69.2687835398304
#> 4 1998 71.9183372769496
#> 5 1999 74.3423648876999
#> 6 2000 76.8850736800294
#> 7 2001 79.7421096759417
#> [ reached 'max' / getOption("max.print") -- omitted 22 rows ]
# load DOT time-series
DOT <- load_datasets("DOT")
DOT$get_series(freq = "M",
ref_area = "PT",
indicator = "TMG_CIF_USD",
counterpart_area = c("B0","W00"),
start_period = "2022-01-01",
end_period = "2022-12-31")
#> TIME_PERIOD M.PT.TMG_CIF_USD.B0 M.PT.TMG_CIF_USD.W00
#> 1 2022-01 5901.778786 8595.602054
#> 2 2022-02 6627.285827 9310.123613
#> 3 2022-03 7284.719861 10072.49156
#> 4 2022-04 6643.374962 9309.040471
#> 5 2022-05 7099.878914 10332.531519
#> [ reached 'max' / getOption("max.print") -- omitted 7 rows ]
HPDD <- load_datasets("HPDD")
HPDD$dimensions$indicator
#> Value Description
#> 1 GGXWDG_GDP Debt to GDP Ratio
d <- HPDD$get_series(freq = "A",
ref_area = c("PT","ES"),
indicator = "GGXWDG_GDP",
start_period = "1974")
# see original data
ls_series <- attr(d, "original_data")
# melt the results
library(data.table)
cols <- lapply(HPDD$dimensions, function(x)NULL)
melt(as.data.table(d), measure.vars = measurev(cols, sep="."))
#> TIME_PERIOD freq ref_area indicator value
#> <char> <char> <char> <char> <char>
#> 1: 1974 A PT GGXWDG_GDP 13.5038251401281
#> 2: 1975 A PT GGXWDG_GDP 19.1667501320296
#> [ reached getOption("max.print") -- omitted 83 rows ]