我使用xmlParse
提取XML数据。然后我使用getNodeSet
来提取如下所示的节点集:
<field dollars="false" unit="(deaths/1,000 live births)" rankorder="1" name="Infant mortality rate" id="f2091">
<rank number="175.90" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="ao"/>
<rank number="149.20" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="af"/>
<rank number="112.22" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="ng"/>
<rank number="111.35" dateEstimated="true" dateLatest="2011-12-31" dateEarliest="2011-01-01" dateText="2011 est." country="ml"/>
<rank number="105.56" dateEstimated="true" dateLatest="2011-12-31"
</field>
接下来,我使用xmlSApply
和xmlGetAttr
命令(xmlSApply(nodeset1, xmlGetAttr, "number")
)将部分节点拉出到列表中。
$ rank [1]“175.90”
$ rank [1]“149.20”
$ rank [1]“112.22”
$ rank [1]“111.35”
我用另一个单词(xmlSApply(nodeset1, xmlGetAttr, "country")
)再次完成它以获得另一个列表:
$ rank [1]“ao”
$ rank [1]“af”
$ rank [1]“ng”
$ rank [1]“ml”
现在我想创建一个合并每个列表中的值的表。我似乎无法做到这一点。我认为问题是每个项目列表都以$rank
开头,但我不知道如何摆脱它。有什么建议吗?
答案 0 :(得分:0)
如果您的节点集具有类似于结构的表,那么最好的方法是使用XML包中的函数xmlToDataFrame将其转换为data.frame。
df&lt; - xmlToDataFrame(nodes = ns)