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