【发布时间】:2019-06-26 18:28:04
【问题描述】:
“我有一个很长的矩阵,测量 30^5 x 3 个条目。我基本上由 10.000 个 30 x 3 矩阵的子块组成,彼此堆叠。我想将它们“cbind”,紧挨着一个另一个(没有循环结构),导致一个 30 x 30^4 矩阵。
仅仅改变矩阵维度是行不通的,因为 R 会为每个单独的列填充新矩阵。
我确信有一种非常紧凑、超高效的方法来做到这一点,一旦你告诉我这个明显的解决方案,我就会在额头上拍自己。
谢谢!”
“仅仅改变矩阵维度是行不通的,因为 R 会为每列填充新矩阵。”
```R
test <- matrix(c(1:18), 6, 3, byrow = FALSE)
>test
[,1] [,2] [,3]
[1,] 1 7 13
[2,] 2 8 14
[3,] 3 9 15
[4,] 4 10 16
[5,] 5 11 17
[6,] 6 12 18
dim(test) <- c(3,6)
>test
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 4 7 10 13 16
[2,] 2 5 8 11 14 17
[3,] 3 6 9 12 15 18
```
我正在寻找的输出是:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 7 13 4 10 16
[2,] 2 8 14 5 11 17
[3,] 3 9 15 6 12 18
【问题讨论】: