2

XMLファイルからいくつかのデータをダウンロードしてRに整理しようとしています。関連する質問とドキュメントを見てきましたが、ほとんどがxmlパッケージ解析関数の使用を参照しており、データを理解できないようです。したがって、私の 2 つの質問は次のとおりです。1) XML 構造とマークアップの代わりに、R に実際のデータをデータ フレームに読み込ませるにはどうすればよいですか? 2) XML コードで XML 構造情報を使用して R で解析できますか?

これは私が取り組んでいるものです(そしてこれまでに失敗した試み):

library("XML")
datahere = c("C:/.../R/feddata/data/")
setwd(datahere)

download.file("http://www.newyorkfed.org/markets/pomo/xml/v3_0/pomoXML.cfm?SHOWMORE=TRUE&date1=01/01/2009&date2=01/10/2009",paste(datahere,"feddata.xml",sep=""))

feddata = xmlInternalTreeParse("feddata.xml")
feddataset = xmlRoot(feddata)
names(feddata)
feddatanodeset = getNodeSet(feddata,"//DataSet/*")
feddatalist = xmlToList("feddata.xml")
feddatalist[2][1][1]
feddataDF = xmlToDataFrame(feddata)
feddata$doc$file$DataSet
feddata["doc"]["file"]["DataSet"]

feddataRoot = xmlRoot(feddata)
feddata2 = xmlSApply(feddata, function(x) xmlSApply(x,xmlValue))
feddata2 = xmlSApply(feddata$DataSet, function(x) xmlSApply(x,xmlValue))

考え、提案、アドバイスなどは大歓迎です。別のスタックの質問、チュートリアル、または私が使用できる例を知っている場合は、それも機能します。冗長になりたくありません。ありがとう!

4

2 に答える 2

3

plyrとを使用した別のソリューションXML

library(XML)
doc <- xmlParse(
  "http://www.newyorkfed.org/markets/pomo/xml/v3_0/pomoXML.cfm?SHOWMORE=TRUE&date1=01/01/2009&date2=01/10/2009"  
)
doc_list <- xmlToList(doc)

library(plyr)
doc_issues <- ldply(doc_list$DataSet$Group, function(d){ 
  if ("issue" %in% names(d)){
    d$issue
  } else {
    NULL
  }
}) 
于 2013-11-03T02:29:33.000 に答える