例如我有一个数据列表(可能有很多元素,但这里只有2个):
> datalist = list(a = matrix(1:10, 5, 2), b = matrix(11:20, 5, 2))
> datalist
$a
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
$b
[,1] [,2]
[1,] 11 16
[2,] 12 17
[3,] 13 18
[4,] 14 19
[5,] 15 20
我想将这两个元素结合起来。 b进入数据框,比如说
> dataframe
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
[6,] 11 16
[7,] 12 17
[8,] 13 18
[9,] 14 19
[10,] 15 20
也就是说,数据列表中有许多元素。它们都有相同的列。我想将它们组合成一个数据框,例如在R中使用“rbind()”函数。 怎么做?谢谢!
答案 0 :(得分:3)
我想你想要do.call(rbind, ...)
。
do.call(rbind, datalist)
# [,1] [,2]
# [1,] 1 6
# [2,] 2 7
# [3,] 3 8
# [4,] 4 9
# [5,] 5 10
# [6,] 11 16
# [7,] 12 17
# [8,] 13 18
# [9,] 14 19
#[10,] 15 20
2015年9月16日更新:大型列表的更有效方法是
data.table::rbindlist(lapply(datalist, as.data.frame))
答案 1 :(得分:2)
轻松与plyr
:
library(plyr)
datalist = list(a = matrix(1:10, 5, 2), b = matrix(11:20, 5, 2))
dat <- ldply(datalist)
print(dat)
## .id 1 2
## 1 a 1 6
## 2 a 2 7
## 3 a 3 8
## 4 a 4 9
## 5 a 5 10
## 6 b 11 16
## 7 b 12 17
## 8 b 13 18
## 9 b 14 19
## 10 b 15 20
如果您愿意/必须,请删除.id
列。