gpt4 book ai didi

r - 使用 WDI 包导入一个地区所有国家的世界银行数据

转载 作者:行者123 更新时间:2023-12-04 10:08:26 24 4
gpt4 key购买 nike

我正在使用 R包裹WDI允许通过他们的 API 导入世界银行数据。问题是我想查看一个地区的所有国家,例如撒哈拉以南非洲。然而,为此我需要指定这么多国家(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 国家/地区的汇总,而不是所有观察结果。

有任何想法吗?

最佳答案

您可以下载所有国家的数据
并使用 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)

关于r - 使用 WDI 包导入一个地区所有国家的世界银行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10191246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com