请考虑以下列表列表:
lst = list(list(c(1,2), c(3,4)),list(c(5,6), c(7,8)),list(c(9,10), c(11,12)))
Run Code Online (Sandbox Code Playgroud)
该列表lst
包含三个列表,每个列表包含两个向量作为元素.我想通过索引组合底层列表的元素.换句话说,我想将列表1中的向量1与列表2和列表3的向量1合并,并将列表1中的向量2与列表2和列表3的向量2等合并...
这是我希望实现的结果:
res = list(c(1,2,5,6,9,10), c(3,4,7,8,11,12))
Run Code Online (Sandbox Code Playgroud)
我知道如果有两个单独的列表,可以按如下方式实现:
mapply(c, lst1, lst2)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何使用列表列表复制相同的逻辑.
有效的方法来实现吗?请记住,实际上,lst
是一个包含5000个列表的列表,每个基础列表都包含大量向量.
谢谢!
你走在正确的轨道上:
do.call(function(...) mapply(c,...,SIMPLIFY = FALSE),args = lst)
[[1]]
[1] 1 2 5 6 9 10
[[2]]
[1] 3 4 7 8 11 12
Run Code Online (Sandbox Code Playgroud)