R:将嵌套列表转换为数据框并获取列表级别和因子的名称

标签 r list dataframe

我有一个嵌套列表:

list1 <- list("A"=c(1,1,1), "B"=c(2,2,2), "C"=c(3,3,3))
list2 <- list("F1" = list1, "F2" = list1)

我想将列表的最后一个级别(包含向量)作为数据帧,并且我想将列表的级别作为因子:

  Level1 Level2 V1 V2 V3
1     F1      A  1  1  1
2     F1      B  2  2  2
3     F1      C  3  3  3
4     F2      A  1  1  1
5     F2      B  2  2  2
6     F2      C  3  3  3

第一部分很好地给出了:

data.frame(matrix(unlist(list2), ncol=3, byrow=T))

但是,我没有找到一种很好的方法来将列表级别名称作为同一数据框中的因素。有任何想法吗? :)

编辑:该过程应适用于 p 维。

最佳答案

“reshape2”中的

melt 有一个用于 list 的方法。也许它可以用在这种情况下。像这样的事情:

library(reshape2)
dcast(cbind(
  coln = sequence(rapply(list2, length)), 
  melt(list2)), L1 + L2 ~ coln, 
  value.var = "value")
#   L1 L2 1 2 3
# 1 F1  A 1 1 1
# 2 F1  B 2 2 2
# 3 F1  C 3 3 3
# 4 F2  A 1 1 1
# 5 F2  B 2 2 2
# 6 F2  C 3 3 3

关于R:将嵌套列表转换为数据框并获取列表级别和因子的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193028/

相关文章:

html - 在什么时候使用处理函数可以提高 HTML 解析效率?

r - 根据文本删除列和下一列

list - 基于第二个属性的Scala排序列表,然后是第一个

xml - 以 xml 格式导出 Sharepoint 列表的最简单方法是什么?

python - Pandas 蟒 : Delete Rows of DF That Have ASCII Letters

r - 使用第一个值创建新列,后面不跟其他列中的其他值

r - 从 PDF 文件中抓取表格

python:如果存在于另一个列表中,则比较列表中的值

Python Pandas 根据掩码获取数据帧的一部分

r - 如何以行方式对值求和并始终选择 R 中除第一列之外的所有列