我有一个矩阵列表,类似于下面的代码获得的矩阵:
a <- matrix(1, ncol=2, nrow=3)
b <- matrix(2, ncol=2, nrow=3)
c <- matrix(3, ncol=2, nrow=3)
d <- list(a, b, c)
Run Code Online (Sandbox Code Playgroud)
我想堆叠它们,使它们在一个矩阵中,类似于这个:
e <- rbind(d[[1]], d[[2]], d[[3]])
Run Code Online (Sandbox Code Playgroud)
诀窍在于我事先并不知道需要加入多少个矩阵.有没有一种很好的方法来编写将所有矩阵堆叠在列表中的代码?
经典之作do.call:
do.call(rbind,d)
Run Code Online (Sandbox Code Playgroud)
使用data.table包的另一个选择:
library(data.table)
rbindlist(lapply(d,as.data.frame))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8528 次 |
| 最近记录: |