我正在使用允许通过其 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 )
我曾尝试将SSH
其用作国家/地区代码,但这给出了所有 SSH 国家/地区的汇总,而不是所有观察结果。
有任何想法吗?