通过阅读和尝试 StackOverflow 上与在 R 中读取 XML 文件相关的一些之前的例子,似乎由于以下文件的“不规则”性质,我不能使用 XPath 相关方法。
https://www.dropbox.com/s/jz8sj2fifuobkva/Data.xml?oref=e&n=305307914
因此,我需要使用 xmlToList() 和 ldply() 的组合来从以下文件读取数据。
特别地,对于文件中的所有 20 个事件(即 event.1、event.2、... event.20),我想要获取以下变量(结构化为)
$movements$movement$clips$clip$data$event$begin
(向量)$movements$movement$clips$clip$data$event$end
(向量)$movements$movement$clips$clip$data$event$max$cells
(数据框)- 如果有多个样本在一个事件中,则与上述相同,但
$rollover$data$quant$cells
(n 个数据框)
基于其他 StackOverflow 的例子,我尝试了以下代码(使用 R v3.1.2)来读取“begin” 数据:
library(XML)
library(plyr)
datfile <- "D:/Data.xml"
xmlfile <- xmlTreeParse(datfile,useInternal = TRUE)
sampledata <- xmlToList(xmlfile)
startdata <- ldply(sampledata$movements$movement$clips$clip$data$event$begin)
当我这样做时,我只得到事件.1中的第一个变量(0.240)。我现在已经陷入困境,已经耗尽了如何解决此问题的调查。
<cells>
是数据框中的一行,还是每一行都是一个向量?如果每个<cells>
是自己的数据框,您希望返回一个数据框列表还是将它们合并在一起? - hrbrmstr