R에서 file을 읽으려고합니다. XML package
을 사용하려했지만 데이터 세트에 무엇이 있는지 전혀 모르기 때문에 패키지를 사용하지 않았습니다.R에있는 XML 데이터 읽기
여러분의 도움을 부탁드립니다.
감사합니다.
세바스찬.
R에서 file을 읽으려고합니다. XML package
을 사용하려했지만 데이터 세트에 무엇이 있는지 전혀 모르기 때문에 패키지를 사용하지 않았습니다.R에있는 XML 데이터 읽기
여러분의 도움을 부탁드립니다.
감사합니다.
세바스찬.
주위를 둘러 볼 방법이 없습니다. R에서 XML과 XPath를 이해해야합니다. 브라우저에서 문서를보고 구조에 대한 아이디어를 얻으십시오. 그런 다음 XML 패키지를 사용하여 시작해야합니다.
library(XML)
xml <- xmlParse("http://data.mcc.gov/raw/xml/MCC_HN.xml")
org <- xpathApply(xml,"//iati-activity/reporting-org",xmlValue)
id <- xpathApply(xml,"//iati-activity/iati-identifier",xmlValue)
title <- xpathApply(xml,"//iati-activity/title",xmlValue)
desc.1 <- xpathApply(xml,"//iati-activity/description[@type='1']",xmlValue)
desc.2 <- xpathApply(xml,"//iati-activity/description[@type='2']",xmlValue)
status <- xpathApply(xml,"//iati-activity/activity-status",xmlValue)
start.planned <- xpathApply(xml,"//iati-activity/activity-date[@type='start-planned']",xmlValue)
start.actual <- xpathApply(xml,"//iati-activity/activity-date[@type='start-actual']",xmlValue)
end.planned <- xpathApply(xml,"//iati-activity/activity-date[@type='end-planned']",xmlValue)
end.actual <- xpathApply(xml,"//iati-activity/activity-date[@type='end-actual']",xmlValue)
df <- data.frame(cbind(org,id, title, status,
start.planned, start.actual, end.planned, end.actual,
desc.1, desc.2))
위의 기능에 대한 설명서를 읽으십시오. xmlParse(...)
, xpathApply(...)
및 xmlValue(...)
을 사용하여 코드가하는 작업을 이해할 수 있습니다.
참고 : XML 패키지에는 xmlToDataFrame(...)
기능이 있습니다. 문서의 문제는 type=
속성을 사용하여 동일한 태그 이름 (예 : description
및 activity-date
)을 가진 여러 요소가 명확하게 구분되어 있다는 것입니다. xmlToDataFrame(...)
는 처리하는 방법을 알고하지 않습니다, 그래서 당신은
당신은 내부에 어떤 변수 알고 했는가 방법 XML 데이터? 당신은 도움이 매우 편리했습니다. 감사! – user3311904
기본적으로 브라우저에서 파일을 볼 필요가 있습니다. 프로그래밍 방식으로 태그 이름의 목록을 볼 수 있지만 브라우저에서보기가 가장 쉽습니다. – jlhoward
그것은 당신이 데이터에 대해 수행 할 작업 정말 분명하지 않다, 그러나 여기에서 우리가
xml = xmlParse("http://data.mcc.gov/raw/xml/MCC_HN.xml")
을 얻을 ... 그것은 어려운 방법을 할 필요가
모든 "거래"기록에 대한 결과를 쿼리와 데이터 프레임
df <- xmlToDataFrame(xml["//transaction"])
로 만들
> dim(df)
[1] 730 11
> head(df, 2)
aid-type
1
2
description
1 Commitment: Honduras-614G Fund-Not Applicable-Not Applicable-2011-04-01
2 Disbursement: Honduras-614G Fund-Not Applicable-Not Applicable-2011-04-01
disbursement-channel finance-code flow-type provider-org
1 Millennium Challenge Corporation
2 Millennium Challenge Corporation
receiver-org tied-status transaction-date transaction-type value
1 Honduras 2011-04-01 COMMITMENT 274380.75
2 Honduras 2011-04-01 DISBURSEMENT 0.00
'aid-type'과 관련된 속성을 추출하여 데이터 프레임에 추가하고 싶을 수 있습니다. 할 XPath를 사용하므로
df$`aid-type-code` <- as.character(xml["//aid-type/@code"])
http://stackoverflow.com/questions/17198658/how-to-parse-xml-to-r-data-frame – user2510479