2012-01-21 5 views
3

은 내가 위의 코드와 기본 테이블을 얻을 관리해야 R.R 코드 : webscraping

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 쿼리 웹 요청을 복사합니다.

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를 사용할 수 있음도 고려한다.

희망이 있습니다.