如何将列表中具有相同行大小的data.frame的元素绑定到一个大型data.frame中

时间:2016-09-01 22:56:17

标签: r

假设我有一个包含4个数据框的列表

l<-list()
l[[1]]<-data.frame(1:10)
l[[2]]<-data.frame(runif(10))
l[[3]]<-data.frame(rnorm(10))
l[[4]]<-data.frame(10:1)

如何将这些文件合并到一个data.frame中?

当我尝试cbind时,我得到:

> cbind(l)
     l     
[1,] List,1
[2,] List,1
[3,] List,1
[4,] List,1

1 个答案:

答案 0 :(得分:1)

我们需要的不是cbind(l),而是cbind(l[[1]], l[[2]], l[[3]], l[[4]])。在R中,我们可以使用do.call()来实现此目的:

do.call(cbind, l)

#   X1.10  runif.10.  rnorm.10. X10.1
#1      1 0.40645551  0.7672801    10
#2      2 0.47996864 -0.2556100     9
#3      3 0.87533193 -0.5907474     8
#4      4 0.38525509 -0.9637239     7
#5      5 0.63586646 -0.2042599     6
#6      6 0.35743512 -0.7991810     5
#7      7 0.73211818 -0.7801925     4
#8      8 0.72659327  0.4355651     3
#9      9 0.11137715 -0.4393534     2
#10    10 0.08484517  0.4154295     1

对于您的具体问题,您也可以使用

as.data.frame(l)