2015-05-31 51 views
1

我有一些麻煩試圖從歐盟統計局下載大量的數據,希望你能幫助我。我從這個post基於我的代碼。歐盟統計局批量SDMX數據下載到R'

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
在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。

希望這有助於!