我正在尝试下载世界银行的 WITS 数据并将它们转换为 R 数据框。该网站的API(参考第 12-13 页)似乎不允许用户一次调用所有“记者”、“合作伙伴”和“产品”,因此可能需要遍历国家列表(或者“记者”或“合作伙伴”)使用他们的 XML 请求格式:
http://wits.worldbank.org/API/V1/SDMX/V21/datasource/tradestats-tariff/reporter/usa/year/2000/partner/all/product/all/indicator/AHS-WGHTD-AVRG
(需要通过“reporters”(国家/地区缩写)列表遍历“usa”部分)我的目标是遍历一个国家/地区缩写列表,为每次运行生成一个数据框,然后将它们绑定到一个更大的数据框。所以我参考了这篇文章并使用了下面的代码,但它并没有让我更进一步。我在下面发布了我的代码,如果有人可以查看并分享一些关于此的提示,我将不胜感激。
# load required packages
library(RCurl)
library(XML)
devtools::install_github("opensdmx/rsdmx")
library(rsdmx)
# if just for one reporter (usa)
myUrl <- "http://wits.worldbank.org/API/V1/SDMX/V21/datasource/tradestats-tariff/reporter/usa/year/2000/partner/all/product/all/indicator/AHS-WGHTD-AVRG"
dataset <- readSDMX(myUrl)
stats <- as.data.frame(dataset)
dim(stats)
[1] 5142 8
# looks like this
head(stats)
FREQ REPORTER PARTNER PRODUCTCODE
1 A USA ABW 01-05_Animal
2 A USA ABW 06-15_Vegetable
3 A USA ABW 16-24_FoodProd
## loop through a list of reporters (countries)
library(rvest)
# teams
reporters <- c("aus", "usa", "ukr")
# init
df <- data.frame()
# loop
for(i in reporters){
# find url
myUrl <- paste0("http://wits.worldbank.org/API/V1/SDMX/V21/datasource/tradestats-tariff/reporter/", i,"/year/2000/partner/all/product/all/indicator/AHS-WGHTD-AVRG")
dataset <- readSDMX(myUrl)
stats <- as.data.frame(dataset)
# bind to dataframe
df <- rbind(df, stats)
}
# view captured data
View(df)
# NOTHING!