मैं कुछ डेटा इसी प्रकार की आकृति है:लोड एक्सएमएल आर डेटा तालिका में "पंक्तियाँ"
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), फ़ंक्शन (x) as.data.frame (टी (एक्स), स्ट्रिंग्सएफ़ैक्टर्स = गलत))) शायद एक बहुत आसान है, हालांकि नहीं एक्सएमएल समाधान। फिर आप कारक ऊंचाई को 'as.numeric (' – user20650
असल में http://stackoverflow.com/questions/2067098/how-to-transform-xml-data-into-a-data-frame?answertab=votes के साथ संख्यात्मक में परिवर्तित कर सकते हैं। # टैब-टॉप उपयोगी हो सकता है – user20650
डेटा में गुण प्राप्त करने के लिए एक फ़ंक्शन है .frame 'XML ::: xmlAttrsToDataFrame (xml [" // person "])' –