我有与此示例类似的列表列表:
z <- list(list(num1=list((list(tab1=list(list(a=1, b=2, c=5), list(a=3, b=4), list(d=4,e=7)))))),list(num2=list((list(tab2=list(list(a=1, b=2), list(a=3, b=4)))))))
我想从列表名称的最后一个列表中提取数字:
所需的输出列表(因为 1 个列表条目较短)或作为具有对应于主列表的列的数据框:
[1] a b c a b d e
[2] a b a b
数据框:
column1 column2
a a
b b
c a
a b
b ""
d ""
e ""
我尝试了 sapply(z, "[[", c("a","b"...)
的各种组合,但失败了,因为子列表名称不同。
编辑:抱歉,我需要的是实际值而不是最后一个节点(字母)!另外,每个数值都有列名,上例中没有设置;是这样的:
[[1]]$num1[[1]]$tab1[[1]]$a
Name
1
因此,所需的解决方案是值:
[1]
1 2 5 3 4 4 7
[2]
1 2 3 4
我实际上需要数值而不是字母。如果你能调整你的解决方案,我将不胜感激。谢谢。
最佳答案
试试
lapply(z, function(x) as.numeric(unlist(x)))
## [[1]]
## [1] 1 2 5 3 4 4 7
##
## [[2]]
## [1] 1 2 3 4
关于r - 使用 R 从列表列表中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27441455/