假设我有一个包含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
答案 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)