1

我在尝试从 Eurostat 下载批量数据时遇到了一些麻烦,希望您能帮助我。我基于这篇文章的代码。

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
4

1 回答 1

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文档中,因为它显示了如何使用 Eurostat Bulk 下载服务和 rsdmx。

希望这可以帮助!

于 2015-06-01T11:08:14.677 回答