5
私はこのような形をいくつかのデータがあります:私はこれを得ている負荷のxml「行」Rデータテーブルに
first last sex height
1 Mary Jane F NA
2 Susan Smith F 168
3 Joseph Black M NA
4 Jessica Jones F NA
:
<people>
<person first="Mary" last="Jane" sex="F" />
<person first="Susan" last="Smith" sex="F" height="168" />
<person last="Black" first="Joseph" sex="M" />
<person first="Jessica" last="Jones" sex="F" />
</people>
を私はこのようになり、データフレームを希望遠い:
library(XML)
xpeople <- xmlRoot(xmlParse(xml))
lst <- xmlApply(xpeople, xmlAttrs)
names(lst) <- 1:length(lst)
しかし、私の人生のために、リストをデータフレームに入れる方法を理解することはできません。私は(すなわちギャップを埋める)リストは、「四角」であることを取得し、データフレームの中にそれを置くことができます。
lst <- xmlApply(xpeople, function(node) {
attrs = xmlAttrs(node)
if (!("height" %in% names(attrs))) {
attrs[["height"]] <- NA
}
attrs
})
df = as.data.frame(lst)
しかし、私は次のような問題があります。
- データフレームがあります最初と最後の
- を転置要因である、
- 高さをCHRない私のデータが正常に一貫性があることから、姓と名はジョゼフ・ブラックの周りを入れ替えてしまった要因ではなく、数値
- (ない大きな問題ですが、それにもかかわらず)
正しい形式でデータフレームを取得するにはどうすればよいですか?
'plyr :: rbind.fill(lapply(xmlToList(txt)、function(x)as.data.frame(t(x)、stringsAsFactors = FALSE)))'おそらく、 xmlソリューションです。次に、因子の高さを 'as.numeric(' – user20650
実際にはhttp://stackoverflow.com/questions/2067098/how-to-transform-xml-data-into-a-data-frame?answertab=votes #tab-topは便利かもしれません – user20650
属性をdata.frameに取得する関数があります。 'XML ::: xmlAttrsToDataFrame(xml [" // person "])' –