R で 3 次元以上のデータを取り扱うときに配列型を使う

配列

R は 3 次元以上のデータを扱うことができる。R のベクトルは 1 次元のデータを、行列とデータフレームは 2 次元のデータを保存することができる。3 次元以上のデータを扱うとき、配列を利用する。ただし、高次元のデータを取り扱うとき、煩雑になるので、その取り扱いに注意を払う必要がある。また、R を利用して生物学のデータを解析するとき、ほとんどの場合、行列またはデータフレームで十分足りる。

配列の作成は array 関数で行う。引数 dim には各次元のサイズを与える必要がある。


x <- array(1:8, dim = c(4, 2))
## x
##      [,1] [,2]
## [1,]    1    5
## [2,]    2    6
## [3,]    3    7
## [4,]    4    8


x <- array(1:12, dim = c(2, 3, 2))
x
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
## 
## , , 2

##      [,1] [,2] [,3]
## [1,]    7    9   11
## [2,]    8   10   12

配列の要素を取り出すとき、角括弧を用いて各次元における添字を与えて取得する。

x <- array(1:16, dim = c(2, 2, 4))

x[2, 1, 3]
## [1] 10
## 

x[-1, , ]
##      [,1] [,2] [,3] [,4]
## [1,]    2    6   10   14
## [2,]    4    8   12   16

x[1, 2, c(2, 3)]
## [1]  7 11