【发布时间】:2015-09-26 03:26:49
【问题描述】:
我有一个矩阵 Vmat:
v1 = c(4 , 8 , 3 , 5 , 9)
v2 = c(5 , 6 , 6 , 11 , 6)
v3 = c( 5 , 6 , 6 , 11 , 6)
v4= c(8, 6, 4, 4, 3)
v5 = c(4 , 8 , 3 , 5 , 9)
v6= c(8 , 6 , 4 , 4 , 3)
v7 = c( 3 , 2 , 7 , 7 , 4)
v8= c(3 , 2 , 7 , 7 , 4)
row1 = c(v1,v2)
row2 = c(v3,v4)
row3 = c(v5,v6)
row4 = c(v7,v8)
Vmat = rbind(row1,row2,row3,row4)
Vmat
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
row1 4 8 3 5 9 5 6 6 11 6
row2 5 6 6 11 6 8 6 4 4 3
row3 4 8 3 5 9 8 6 4 4 3
row4 3 2 7 7 4 3 2 7 7 4
我想通过将矩阵分成 2 来堆叠矩阵(n=ncol(Vmat)/2 = 每 5 列)。
所以输出是:
[,1] [,2] [,3] [,4] [,5]
4 8 3 5 9
5 6 6 11 6
4 8 3 5 9
3 2 7 7 4
5 6 6 11 6
8 6 4 4 3
8 6 4 4 3
3 2 7 7 4
【问题讨论】:
-
为什么apply不能用?
-
因为它太慢了,矩阵很大,我正在做计算上非常需要的东西
-
质量有多大?
-
至少有 200 万列和 500 行,但这是“玩具”示例。真实的例子将更像是 2000 万行和 16000 行,甚至可能更大。我想尽可能快地对其进行预期编程
-
有什么你自己已经尝试过的,所以我们知道什么不能做吗?我一直在玩弄它,但即使是您的“玩具”示例中的虚拟矩阵也会占用我几乎所有的 8GB RAM。