2013-11-04 34 views
1

我知道那幾個人需要從歐盟統計局網站上下載的數據(例如參見 http://bit.ly/HrDTgT ),但我在找的是不是一個批量下載,但更多的東西類似於一個正確下載格式化(小)CSV文件。 例如考慮下面的代碼片段[R XML和歐盟統計局的數據下載

library(XML) 

mylines <- readLines(url("http://bit.ly/1czdbRq")) 
closeAllConnections() 
mylist <- readHTMLTable(mylines,## stringsAsFactors = FALSE , 
        asText=TRUE) 
mytable <- mylist$xTable 

這已經是接近我所需要的,但也有幾件事情我不能修復 1)列名丟失 2)只有數值離開。我失去了關於數字涉及的國家的所有信息以及統計指標的(最終)水平/單位。

任何關於如何改善(可能在R)的想法? 乾杯

洛倫佐

+2

歐盟統計局推出了基於SDMX的Web服務,允許通過SOAP或REASful API查詢數據。你可以嘗試一下http://epp.eurostat.ec.europa.eu/portal/page/portal/sdmx_web_services/about_eurostat_data – Sergey

回答

1

正如@Sergey表明您可以使用SDMX Web服務從歐盟統計局查詢數據。通過SDMX Eurostat REST API,這些數據(即使您指定了過濾器)將產生一個網址(請參閱Eurostat indications來構建SDMX數據查詢)。

在R中,您可以使用rsdmx包讀取數據。見下面的例子:

#in case you want to install rsdmx from Github 
#(otherwise you can install it from CRAN) 
require(devtools) 
install_github("rsdmx", "opensdmx") 
require(rsdmx) 

#read EUROSTAT dataset 
dataURL <- "http://ec.europa.eu/eurostat/SDMX/diss-web/rest/data/cdh_e_fos/..PC.FOS1.BE/?startperiod=2005&endPeriod=2011 " 
sdmx <- readSDMX(dataURL) 
stats <- as.data.frame(sdmx) 
head(stats) 

注意:您可以從CRAN發現rsdmx或直接從GitHub倉庫安裝。 https://github.com/opensdmx/rsdmx

如果你想要更多的例子,我邀請你去檢查rsdmx wiki

+0

謝謝!我應該很久以前寫這篇文章,但RJSDMX救了我的命。 – larry77

+0

你的意思是''rsdmx''? RJSDMX是另一個軟件包。如果您使用EUROSTAT數據,我建議您查看rsdmx助手。現在該軟件包嵌入了衆所周知的數據源(作爲Web服務接口),這簡化了查詢數據的方式。讓我知道 – eblondel