読者です 読者をやめる 読者になる 読者になる

Rを通じて統計学を学ぶ備忘録ブログ

SPSSからRに移行したい私のような人向けのR解説ブログ兼学習用備忘録。

第7回 その他の行列(対角、単位行列)と要素の取り出し

正方行列とは、行要素と列要素の数が同じ行列です。n 行 ×n 列の時、n 次正方行列。

> matrixs <- matrix(1:9,3,3)

> matrixs

     [,1]  [,2]  [,3]

[1,]    1    4    7

[2,]    2    5    8

[3,]    3    6    9

 次は、対角行列。

正方行列の対角要素以外が0の行列。

> diag(c(1,2,3,4,5)) #対角要素を1~5にして作成

     [,1] [,2] [,3] [,4] [,5]

[1,]    1    0    0    0    0

[2,]    0    2    0    0    0

[3,]    0    0    3    0    0

[4,]    0    0    0    4    0

[5,]    0    0    0    0    5

そして、単位行列。対角要素が1の行列。

> diag(5) #対角要素を1にまま5×5行列の作成

     [,1] [,2] [,3] [,4] [,5]

[1,]    1    0    0    0    0

[2,]    0    1    0    0    0

[3,]    0    0    1    0    0

[4,]    0    0    0    1    0

[5,]    0    0    0    0    1

最後は行列を取り出してみる。

> matrixA <- matrix(1:50,10,5)

> matrixA

       [,1]  [,2]  [,3]  [,4]  [,5]

[1,]    1   11   21   31   41

[2,]    2   12   22   32   42

[3,]    3   13   23   33   43

[4,]    4   14   24   34   44

[5,]    5   15   25   35   45

[6,]    6   16   26   36   46

[7,]    7   17   27   37   47

[8,]    8   18   28   38   48

[9,]    9   19   29   39   49

[10,]   10   20   30   40   50

> matrixA[,1] #1列目を取り出す

[1]  1  2  3  4  5  6  7  8  9 10

> matrixA[,5] #5列目を取り出す

[1] 41 42 43 44 45 46 47 48 49 50

> matrixA[1,] #1行目を取り出す

[1]  1 11 21 31 41

> matrixA[4,] #4行目を取り出す

[1]  4 14 24 34 44

> matrixA[6,] #6行目を取り出す

[1]  6 16 26 36 46

 奇数行だけ取り出したい場合と奇数列だけを取り出したい場合。

> matrixA[c(1,3,5,7,9),] #奇数行を取り出す

     [,1]  [,2]  [,3]   [,4]   [,5]

[1,]    1   11   21   31   41

[2,]    3   13   23   33   43

[3,]    5   15   25   35   45

[4,]    7   17   27   37   47

[5,]    9   19   29   39   49

 

> matrixA[,c(1,3,5)] #奇数列を取り出す

      [,1]  [,2]  [,3]

[1,]    1   21   41

[2,]    2   22   42

[3,]    3   23   43

[4,]    4   24   44

[5,]    5   25   45

[6,]    6   26   46

[7,]    7   27   47

[8,]    8   28   48

[9,]    9   29   49

[10,]   10   30   50

 

関数おさらい

diag():対角行列を作成する

 

第7回は以上でお終い。