【发布时间】:2016-03-14 16:46:28
【问题描述】:
我有一个大型矩阵列表。所有这些矩阵都有相同的行数,我想“取消列出”它们并将它们的所有列绑定在一起。下面是我写的一段代码,但我不确定这是否是我在计算效率方面能达到的最好的。
# simulate
n <- 10
nr <- 24
nc <- 8000
test <- list()
set.seed(1234)
for (i in 1:n){
test[[i]] <- matrix(rnorm(nr*nc),nr,nc)
}
> system.time( res <- matrix( as.numeric( unlist(test) ) ,nr,nc*n) )
user system elapsed
0.114 0.006 0.120
【问题讨论】:
-
也许可以试试
do.call(cbind,test) -
@Tensibai 谢谢,我试过了,确实快多了。将相应地更新我的帖子。任何直觉为什么它要快得多?
-
我认为复制和选角最少
-
使用
microbenchmark包进行基准测试。如果时间太短,system.time不适合。 -
@Tensibai 好的,再次感谢!
标签: r