行列の各要素ごとに異なる引数を与えて,同じ関数を適用
applyを使って,行列の行や列ごとに,異なる引数を与えて同じ関数を適用したいときの方法です.
まずこんな行列を作成
> (xx <- t(array(1:12, dim = c(4, 3)))) [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12 >
列ごとに異なる引数を与えて,各行に同じ関数を適用したいとき.
例えば,第1列なら1,第2列なら2,第3列なら3,第4列なら4を引きたいとき.
> t(apply(xx, 1, function(x){x - 1:4})) [,1] [,2] [,3] [,4] [1,] 0 0 0 0 [2,] 4 4 4 4 [3,] 8 8 8 8 >
行ごとに異なる引数を与えて,各列に同じ関数を適用したいとき.
例えば,第1行なら0,第2行なら4,第3行なら8を引きたいとき.
> apply(xx, 2, function(x){x - c(0, 4, 8)}) [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 1 2 3 4 [3,] 1 2 3 4 >
それだけです.