欧盟统计局批量SDMX数据下载到R?

时间:2015-05-31 22:13:18

标签: r sdmx

我在尝试从欧盟统计局下载批量数据时遇到了一些麻烦,希望你能帮助我。我根据此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

1 个答案:

答案 0 :(得分:1)

在EUROSTAT中,提取的结果由两个单独的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。

希望这有帮助!