xml – 列表中的数据帧列表

我必须处理一个名为ul的丑名单,如下所示:
[[1]]
[[1]]$param
     name     value 
"Section"       "1" 

[[1]]$param
   name   value 
"field"     "1" 

[[1]]$param
          name          value 
"final answer"            "1" 

[[1]]$param
    name    value 
"points"   "-0.0" 


[[2]]
[[2]]$param
     name     value 
"Section"       "1" 

[[2]]$param
   name   value 
"field"     "2" 

[[2]]$param
          name          value 
"final answer"            "1" 

[[2]]$param
    name    value 
"points"    "1.0" 


[[3]]
[[3]]$param
     name     value 
"Section"       "1" 

[[3]]$param
   name   value 
"field"     "3" 

[[3]]$param
          name          value 
"final answer"        "0.611" 

[[3]]$param
    name    value 
"points"    "1.0"

我想将列表转换成一个简单的数据框,即

Section    field    final answer    points
      1        1               1      -0.0
      1        2               1       1.0
      1        3           0.611       1.0

有没有直接的方法来实现呢?或者我必须单独访问每个列表并将其绑定到数据框?

数据是从一个更加恶劣的xml文件导入的,所以如果有人想玩它,那里有一个链接到RData file.对不起,没有可重现的代码.非常感谢你.

可能有更好的解决方案,但这应该让你开始.首先,我们加载一些库
R> library(plyr)
R> library(reshape2)

然后分两部分处理你的列表.

##lapply applies ldply to each list element in turn
ul1 = lapply(ul,ldply)

##We then do the same again
dd = ldply(ul1)[,2:3]

接下来我们根据列表顺序对输出进行标号

R> dd$num = rep(1:3,each=4)

然后我们从长格式转换为宽格式

R> dcast(dd,num ~ name)

  num field final answer points Section
1   1     1            1   -0.0       1
2   2     2            1    1.0       1
3   3     3        0.611    1.0       1

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念