我正在使用允许通过其API导入世界银行数据的R软件包WDI.问题是我想看看一个地区的所有国家,例如撒哈拉以南非洲地区.但是为此,我需要指定这么多国家(SSH现在是49).
首先,这是低效的,特别是考虑到data.worldbank.org上的数据资源管理器允许您选择一个区域.
然而,真正的问题是,为了(我猜测)世界银行API而处理国家的数量有问题,因为太多的国家/地区都会出现HTTP错误.导致我必须将请求分为两部分.
但是,当使用更有效的ALL值时,即使观察数量高得多,也没有错误.
现在我的代码看起来像这样:
library(WDI)
COUNTRIES1 <- c( "AGO","BEN","BWA","BFA","BDI","CMR","CPV","CAF","TCD","COM","ZAR","COG","CIV","GNQ","ERI","ETH","GAB","GMB","GHA","GNB","GIN","KEN","LSO","LBR","MDG" )
COUNTRIES2 <- c( "MWI","MLI","MRT","MUS","MYT","MOZ","NAM","NER","NGA","RWA","STP","SEN","SYC","SLE","SOM","ZAF","SSD","SDN","SWZ","TZA","TGO","UGA","ZMB","ZWE" )
INDICATORS <- c("NY.GDP.PCAP.KN", "SP.DYN.TFRT.IN", "SP.POP.TOTL")
LONG1 <- WDI( country=COUNTRIES1, indicator=INDICATORS, start=1960, end=2009, extra=FALSE)
LONG2 <- WDI( country=COUNTRIES2, indicator=INDICATORS, start=1960, end=2009, extra=FALSE)
LONG <- merge( LONG1, LONG2, by=intersect( names(LONG1),names(LONG2) ), all=TRUE )
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用SSH国家代码,但这给出了所有SSH国家的汇总,而不是所有的观察.
有任何想法吗?
您可以下载所有国家/地区的数据,并使用该数据Region过滤结果.
library(WDI)
indicators <- c("NY.GDP.PCAP.KN", "SP.DYN.TFRT.IN", "SP.POP.TOTL")
d <- WDI("all", indicators, extra=TRUE, start=1960, end=2009)
# Discard unwanted rows
d <- d[ which(d$Region == "Sub-Saharan Africa"), ]
# Discard unwanted columns
d <- d[,1:6]
head(d)
Run Code Online (Sandbox Code Playgroud)