我有一个6行的矩阵和一个长度为6的向量,我想用它来重新组织我的矩阵。
我的新矩阵的第一行应该包含我的向量的第一个数值的位置行。
我的新矩阵的第二行应该包含我的向量的第二个数值的位置行。
以下是一个例子:
> Matrix <- matrix(rnorm(30),nrow=6,ncol=5)
> Vector <- c(1,3,6,2,4,5)
操作之后的实际第一行将位于第一行位置。 在操作之后,实际的第二行将位于第三行位置。 在操作之后,实际的第三行将位于第六行位置。 等等....
我希望我的解释清楚得多!
为了让我的问题更清晰,我做了这个编辑
修改
> Matrix=matrix(c(1,2,3,4,5,6,7,8,9),nrow=3,ncol=3,byrow=T)
> Matrix
[,1][,2][,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
> Vector=c(2,3,1)
我想重新组织行以获得这个:
> NewMatrix=matrix(c(4,5,6,7,8,9,1,2,3),byrow=T)
> NewMatrix
[,1][,2][,3]
[1,] 4 5 6
[2,] 7 8 9
[3,] 1 2 3
第2行现在位于第1位,第3行现在位于第2位,第1行现在位于第3位。
答案 0 :(得分:5)
使用矢量索引:
Matrix[Vector,]
要查看正在发生的事情,最好使用其他Matrix
:
Matrix=matrix(1:30, nrow=6)
Matrix
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 7 13 19 25
## [2,] 2 8 14 20 26
## [3,] 3 9 15 21 27
## [4,] 4 10 16 22 28
## [5,] 5 11 17 23 29
## [6,] 6 12 18 24 30
Matrix[Vector,]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 7 13 19 25
## [2,] 3 9 15 21 27
## [3,] 6 12 18 24 30
## [4,] 2 8 14 20 26
## [5,] 4 10 16 22 28
## [6,] 5 11 17 23 29