配列とは行列を多次元に拡張したものである.行列は 2 次元であったが,配列はその次元に応じて 3 次元,4 次元,… のものを作成することが出来る.
配列は以下の手順で作成出来る.
すなわち,配列は関数 array() で作成出来,引数 dim に各次元の要素の個数をベクトルを指定する.また,k 次元の配列は k 個の要素番号でアクセス出来,関数 dim() で配列の次元を調べることが出来る.
( x <- array(1:8, dim=c(1, 4, 2)) ) # 3 次元配列
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
, , 2
[,1] [,2] [,3] [,4]
[1,] 5 6 7 8
x[1, 4, ] # x[1次元目の番号,2次元目の番号,] でアクセス
[1] 4 8
|
配列の要素へのアクセス方法は行列の場合とほぼ同様である.次元ごとに関数を適用する場合も,行列の操作方法 が使用できる.
例えば,3 次元配列 x に対して,全ての配列番号 i について mean(x[i,i, ]) を計算するには以下の様にすればよい.
x <- array(1:16, dim=c(2, 4, 2))
apply(x, c(1,2), mean)
[,1] [,2] [,3] [,4]
[1,] 5 7 9 11
[2,] 6 8 10 12
|
配列を転置する場合は関数 aperm() を用いればよい.引数 perm (置換) の部分に c(2,1) を入れれば行列の置換と同じになる.例えば以下の様にして使えばよい.
x <- array(1:24, 2:4) # 4 次元配列 xt <- aperm(x, perm=c(2,1,3)) # xt は x を転置した配列 |