1

6 行の行列と、行列を再編成するために使用したい長さ 6 のベクトルがあります。

新しい行列の最初の行には、ベクトルの最初の数値の値の位置にある行が含まれている必要があります。

新しい行列の 2 行目には、ベクトルの 2 番目の数値の値の位置に行が含まれている必要があります。

以下に例を示します。

> Matrix <- matrix(rnorm(30),nrow=6,ncol=5)
> Vector <- c(1,3,6,2,4,5)

実際の最初の行は、操作後に最初の行の位置になります。操作後、実際の 2 列目は 3 列目の位置になります。実際の 3 列目は、操作後に 6 列目の位置になります。等々....

私の説明が十分に明確であることを願っています!

質問を明確にするために、この編集を行いました

編集:

> 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 番目の位置になります。

4

1 に答える 1

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
于 2013-02-24T15:49:07.863 に答える