考虑以下列表的列表:
lst = list(list(c(1,2), c(3,4)),list(c(5,6), c(7,8)),list(c(9,10), c(11,12)))
- lst[[1]][[1]] + lst[[2]][[1]] + lst[[3]][[1]]
- lst[[1]][[2]] + lst[[2]][[2]] + lst[[3]][[2]]
res = list(c(1,2,5,6,9,10), c(3,4,7,8,11,12))
我知道在两个单独的列表的情况下可以通过以下方式实现:
mapply(c, lst1, lst2)
然而,我不确定如何使用一个列表的列表来复制相同的逻辑。
有没有有效的方法来实现这个?请记住,实际上 lst
是一个包含 5000 个列表的列表,并且每个底层列表都包含大量的向量。
谢谢!
sapply(1:length(lst) function(j)list[[j]][[1]])
和类似的以[[2]]
结尾的函数就足够了? - Carl Witthoft