矩阵重组

时间:2013-02-24 15:42:54

标签: r

我有一个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位。

1 个答案:

答案 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