xml – 列表中的数据帧列表
发布时间:2020-12-16 07:53:57 所属栏目:百科 来源:网络整理
导读:我必须处理一个名为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"
我必须处理一个名为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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |