您如何从世界银行API将多个指标下载到R中的单独列中?

时间:2019-07-24 11:10:56

标签: r api

我正在使用世界银行数据库的API(软件包wbstats)下载一些指标的值。使用这段代码,我将每个指标放入一组新的行中。但是,我想按指标将数据下载到单独的列中。

library(wbstats)

credit_vars <- wbsearch(pattern = "GDP", extra = TRUE, 
                        fields = c("indicator", "indicatorDesc"))

# Downloading data - 9 countries, 7 indicators
credit_data <- wb(country = c("DEU", "FRA","ESP", "GBR", "ITA", 
                  "POL", "SWE", "NOR", "FIN"), indicator = c("FB.AST.NPER.ZS",
                  "GFDD.AI.15", "FM.AST.OFIN.CN", "FS.AST.PRVT.GD.ZS", "GFDD.SI.07", 
                  "GFDD.OI.04", "NY.GDP.MKTP.KD"), mrv = 1)

2 个答案:

答案 0 :(得分:0)

看起来这更多的是如何将数据从API中转换出来后的问题-使用data.table,您可以轻松地重塑数据!

使用mrv(最新值)会在日期中返回很多空白,因此我将您的示例更改为返回日期窗口。这样返回的数据集之间的差异较小。

credit_data <- wb(country = c("DEU", "FRA","ESP", "GBR", "ITA", 
                              "POL", "SWE", "NOR", "FIN"),
                  indicator = c("FB.AST.NPER.ZS",
                                                                         "GFDD.AI.15", "FM.AST.OFIN.CN", "FS.AST.PRVT.GD.ZS", "GFDD.SI.07", 
                                                                         "GFDD.OI.04", "NY.GDP.MKTP.KD"), 
                  startdate = '2014', enddate = '2019')
library(data.table)
setDT(credit_data)
credit_data_wide = dcast(credit_data, date + iso2c + country ~indicator, value.var = 'value')

答案 1 :(得分:0)

由于您已经在使用arg1软件包,因此请在wbstats函数中使用参数return_wide = TRUE

有时最好先使用wb检查文档,因为人们编写这些功能和软件包时都非常友好。