【发布时间】:2014-08-27 20:21:19
【问题描述】:
我有一个列表,其中每个元素都是一个命名列表,但元素在任何地方都不相同。我已经阅读了有关如何将列表列表转换为数据框 here 和 here 的解决方案,但是当列表不相同时,这些都不起作用。
示例 - 请注意,我也有混合类型,如果解决方案将所有内容强制转换为字符,那很好。
lisnotOK <- list(list(a=1, b=2, c="hi"), list(b=2, c="hello", d="nope"))
结果应该只是 NA,其中列不能被列表填充,就像来自 plyr 的 rbind.fill 或来自 dplyr 的 rbind_all。
例子
lisOK <- list(list(a=1, b=2, c="hi"), list(a=3, b=5, c="bye"))
# One of many solutions
do.call(rbind.data.frame, lisOK)
# gives
a b c
2 1 2 hi
21 3 5 bye
任何使用rbind 或尝试将lisnotOK 转换为矩阵的解决方案都将失败,而上面链接的帖子中的任何示例都不起作用,即使我尝试使用rbind_all 或rbind.fill .
一个解决方案是一个丑陋的 for 循环,其中每个连续列表都更改为一个数据帧,并使用rbind_all 绑定到一个数据帧。
有人知道有效的解决方案吗?
【问题讨论】:
标签: r