2012-05-07 75 views
3

假设我有两个列表:如何将相同长度的列表组合成一个?

xx <- as.list(1:3) 
yy <- as.list(LETTERS[1:3]) 

我如何将二者结合起来,以使新的列表中的每个元素是每个组件列表中的相应元素的列表。所以,如果我结合上面两个,我应该得到:

> combined_list 
[[1]] 
[[1]][[1]] 
[1] 1 

[[1]][[2]] 
[1] "a" 


[[2]] 
[[2]][[1]] 
[1] 2 

[[2]][[2]] 
[1] "b" 


[[3]] 
[[3]][[1]] 
[1] 3 

[[3]][[2]] 
[1] "c" 

如果你能提出一个解决方案,我想这扩展到3个或更多。

回答

5

这应该可以做到。很好,mapply()将采取任意数量的列表作为参数。

xx <- as.list(1:3) 
yy <- as.list(LETTERS[1:3]) 
zz <- rnorm(3) 

mapply(list, xx, yy, zz, SIMPLIFY=FALSE) 
相关问题