« [R]LU分解を行う | トップページ | [R]パイプラインを使ってリストの要素を取り出す »

2026年3月 1日 (日)

[R]行列の行(列)ごとに演算を行う

apply関数を使う。第二引数に1を指定すると行ごと、2を指定すると列ごとに演算を行い、結果をベクトルで返す。第三引数に演算を行う関数を指定する。指定する関数は、組み込み関数でも自作関数でも、直接書いてもかまわない。

> mx <- matrix(1:8, 2, 4)
> print(mx)
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
> apply(mx, 1, sum)
[1] 16 20
> apply(mx, 2, sum)
[1] 3 7 11 15
> f <- function(d) {sum(d ^ 2)}
> apply(mx, 2, f)
[1] 5 25 61 113
> apply(mx, 2, function(d) {sum(d ^ 3)})
[1] 9 91 341 855

« [R]LU分解を行う | トップページ | [R]パイプラインを使ってリストの要素を取り出す »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]LU分解を行う | トップページ | [R]パイプラインを使ってリストの要素を取り出す »

無料ブログはココログ

■■

■■■