我在尝试从欧盟统计局下载批量数据时遇到了一些麻烦,希望你能帮助我。我根据此post创建了代码。
library(devtools)
require(devtools)
install_github("rsdmx", "opensdmx")
require(rsdmx)
# Make a temporary file (tf) and a temporary folder (tdir)
tf <- tempfile(tmpdir = tdir <- tempdir())
## Download the zip file
download.file("http://ec.europa.eu/eurostat/estat-navtree-portlet-prod/BulkDownloadListing?sort=1&file=data%2Frd_e_gerdsc.sdmx.zip", tf)
## Unzip it in the temp folder
test <- unzip(tf, exdir = tdir)
sdmx <- readSDMX(test)
stats <- as.data.frame(sdmx)
head(stats)
我收到此警告,数据框为空:
Warning message:
In if (attr(regexpr("<!DOCTYPE html>", content), "match.length") == :
the condition has length > 1 and only the first element will be used
答案 0 :(得分:1)
XML
文件组成:
DSD
(数据结构定义),描述SDMX数据集根据您的代码,试试这个:
testfile <- test[2] #path for the dataset
sdmx <- readSDMX(testfile, isURL = FALSE) # isURL = FALSE (to read a local file)
stats <- as.data.frame(sdmx)
head(stats)
注意:调用as.data.frame
可能需要一些时间才能完成,具体取决于数据集的大小。我一直在进行更多测试,以进一步提高读取大型SDMX数据集的性能。
您的用例非常有趣,我会将其添加到rsdmx documentation,因为它显示了如何使用Eurostat批量下载服务和rsdmx。
希望这有帮助!