2012-01-21 9 views
3

は、私は上記のコードでの基本的なテーブルを取得するために管理しているR.Rコード:ウェブスクレイピング

library(XML) 
OECD <- readHTMLTable('http://stats.oecd.org/Index.aspx?DataSetCode=MEI_CLI') 
OECD<- data.frame(rawOECD[[1]]) 

とOECDテーブルをwebscrapeしようとしていますが、私はトラブル提示可能な形式にそれを得ることが生じています。

私はあなたの助けに感謝します。

敬具、この程度

アダム

答えて

7

どのように?

library(XML) 
OECD <- readHTMLTable('http://stats.oecd.org/Index.aspx?DataSetCode=MEI_CLI',stringsAsFactors = FALSE) 

n.rows <- unlist(lapply(OECD, function(t) dim(t)[1])) 
out <-as.data.frame(OECD[[which.max(n.rows)]]) 
colnames(out) <-c("Date",out[7,-ncol(out)]) #add row names 
out <-out[-(1:9),] #clean up 
+0

それは素晴らしいです。ご助力ありがとうございます。 – user1162244

+0

喜んで助けました。回答を承認済みとマークすることを忘れないでください(灰色のチェックマークをクリックすると緑色に変わります)。 –

0

(少なくとも自分のデータクエリに応じて、変更する可能性がある)、「ビュー」の抽象化を行うために、そしておそらくRからデータのクエリをパラメータ化するためには、HTMLを使用しての代替、さOECD統計ポータルでサポートされているSDMX標準交換フォーマットを検討する。エクスポートをクリックすると「SDMX」が選択され、SDMXクエリーのWebリクエストがコピーされます。

require(rsdmx) 
sdmx <- readSDMX("http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/MEI_CLI/LOLITOAA+LOLITONO+LOLITOTR_STSA+LOLITOTR_GYSA+BSCICP03+CSCICP03+LORSGPRT+LORSGPNO+LORSGPTD+LORSGPOR_IXOBSA.AUS+AUT+BEL+CAN+CHL+CZE+DNK+EST+FIN+FRA+DEU+GRC+HUN+IRL+ISR+ITA+JPN+KOR+LUX+MEX+NLD+NZL+NOR+POL+PRT+SVK+SVN+ESP+SWE+CHE+TUR+GBR+USA+EA19+G4E+G-7+NAFTA+OECDE+OECD+ONM+A5M+BRA+CHN+IND+IDN+RUS+ZAF.M/all?startTime=2013-09&endTime=2015-08") 
df <- as.data.frame(sdmx) 

rsdmxは今も、よく知られているデータプロバイダからのデータを照会するための方法を提供し、OECDは、このリストの一部です:

その後、Rで、あなたは簡単にrsdmxパッケージを使用することができます。この機能では、rsdmx version> = 0.5(現在はGithubのみ)を使用する必要があります。ここで例えば以下:

sdmx <- readSDMX(providerId = "OECD", resource = "data", flowRef = "MEI_CLI", 
       key = "all", key.mode = "SDMX", 
       start = "2013-09", end = "2015-08") 
df <- as.data.frame(sdmx) 

注:このような(また、OECDによって提供される)data structure definitionなどのメタデータを読み取るために同じSDMX形式とrsdmxを使用することができることも検討。

希望します。

関連する問題