どのように変換したいXMLデータへのデータです。フレーム?
質問
私を学習しようとしているR XML
パッケージです。私はその実現に努めています。フレームからbooks.xml サンプルをxmlデータファイルです。こちらは何を取得します:
library(XML)
books <- "http://www.w3schools.com/XQuery/books.xml"
doc <- xmlTreeParse(books, useInternalNodes = TRUE)
doc
xpathApply(doc, "//book", function(x) do.call(paste, as.list(xmlValue(x))))
xpathSApply(doc, "//book", function(x) strsplit(xmlValue(x), " "))
xpathSApply(doc, "//book/child::*", xmlValue)
これらの各xpathSApplyのない私も思います。については如何に考えるべきであ進に向けた正しい形式になっています。フレーム?
解決
通常、私はあなたがいてこのことについて、 xmlToDataFrame()
機能するとともに、これは実際にかなり難していないのでも構います。
のものをお勧めしますとこの機能:
xmlToList(books)
ひとつの問題は、複数の著者本が必要となりますのでどう扱うことが構造化データフレーム。
一度決まっていうのは複数の著者の問題、それはかなり真っ直ぐにサイトを置き換えるだけでなく図書館案内サービスへのデータフレームの ldply()
機能plyr(又は使おうlapply変換の返り値が入ります。フレームを用います。コール"rbind"...).
こちらの完全な例を除くの著):
library(XML)
books <- "w3schools.com/xsl/books.xml"
library(plyr)
ldply(xmlToList(books), function(x) { data.frame(x[!names(x)=="author"]) } )
.id title.text title..attrs year price .attrs
1 book Everyday Italian en 2005 30.00 COOKING
2 book Harry Potter en 2005 29.99 CHILDREN
3 book XQuery Kick Start en 2003 49.99 WEB
4 book Learning XML en 2003 39.95 WEB
このように著者含まれます。を使用する必要があり ldply
このインスタンスのリストは"ギザギザ"...lapplyだけでは対応できない。[その他利用できる lapply
と rbind.fill
(提供:ハドレー)ですが、なぜわざわざき plyr
自動いたします。:
ldply(xmlToList(books), data.frame)
.id title.text title..attrs author year price .attrs
1 book Everyday Italian en Giada De Laurentiis 2005 30.00 COOKING
2 book Harry Potter en J K. Rowling 2005 29.99 CHILDREN
3 book XQuery Kick Start en James McGovern 2003 49.99 WEB
4 book Learning XML en Erik T. Ray 2003 39.95 WEB
author.1 author.2 author.3 author.4
1 <NA> <NA> <NA> <NA>
2 <NA> <NA> <NA> <NA>
3 Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan
4 <NA> <NA> <NA> <NA>
所属していません StackOverflow