R-如何在交替两个列表元素的同时重新绑定两个列表

乔希

我想知道如何将两个包含向量的列表绑定到一个数据帧中。例如

a<-list(c(1,2,3,4,5), c(2,3,4,5,6))
b<-list(c(3,4,5,6,7), c(4,5,6,7,8))

如何从两个列表中制作数据框,如下所示:

1 2 3 4 5
3 4 5 6 7
2 3 4 5 6 
4 5 6 7 8

因此,我需要获取每个列表的第一个元素,然后重新绑定它们。然后使用每个列表的第二个元素,然后重新查找到前一个数据帧。我知道我可以使用for循环,但是有更好,更快的方法吗?

后期邮件

@DiscoSuperfly答案的一种变体,适用于长度不均匀的对象,例如:

a <- list(c(1,2,3,4,5), c(2,3,4,5,6), c(1,1,1,1,1))
b <- list(c(3,4,5,6,7), c(4,5,6,7,8))

一个答案:

L <- list(a,b)
L <- lapply(L, `length<-`, max(lengths(L)))
do.call(rbind, do.call(Map, c(rbind, L)))

#     [,1] [,2] [,3] [,4] [,5]
#[1,]    1    2    3    4    5
#[2,]    3    4    5    6    7
#[3,]    2    3    4    5    6
#[4,]    4    5    6    7    8
#[5,]    1    1    1    1    1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章