我正在使用世界银行数据库的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)
答案 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检查文档,因为人们编写这些功能和软件包时都非常友好。