按索引组合列表列表的元素

May*_*you 13 r list

请考虑以下列表列表:

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个列表的列表,每个基础列表都包含大量向量.

谢谢!

flo*_*del 17

你可以做:

do.call(Map, c(c, lst))
Run Code Online (Sandbox Code Playgroud)


jor*_*ran 6

你走在正确的轨道上:

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)