【发布时间】:2015-01-11 18:49:37
【问题描述】:
我第一次尝试将 XML 转换为 R data.frame,并发现了如下问题: How to transform XML data into a data.frame? 非常有帮助,但仍然无法将我的 XML 片段转换为 data.frame。
我的目标是绘制一段时间内欧元兑美元汇率的图表。此处以 XML 格式列出数据:
http://www.ecb.europa.eu/stats/exchange/eurofxref/html/usd.xml
我能够读取数据并显示我感兴趣的数据部分(节点?):
library(XML)
doc <- xmlTreeParse("http://www.ecb.europa.eu/stats/exchange/eurofxref/html/usd.xml")
root <- xmlRoot(doc)
root[[2]][[2]]
我尝试了 getNodeSet() 的变体来显示所有以 开头的行,但到目前为止无济于事:
getNodeSet(root, "/DataSet/Series/*")
getNodeSet(root, "//obs")
getNodeSet(root, "//obs[@OBS_VALUE = 1.1789]")
如何从这个 XML 文件中提取所有变量或变量 TIME_PERIOD 和 OBS_VALUE 并将它们放入 R data.frame 中?已经感谢任何 cmets 或澄清。
【问题讨论】:
-
Tbh,我不知道为什么 xpaths 的子集不起作用(?)。一个深奥的解决方案可能是
t(sapply(xmlChildren(xmlRoot(doc)[[2]][[2]]), xmlAttrs))。 -
谢谢@lukeA,这真的很有帮助。