モモノキ&ナノネと一緒にR関数の使い方を練習しよう
行列データのまとめ処理に便利なapply関数のキホン的使い方
ナノネ、統計解析用フリーソフト『R』の使い方を練習するよ。今回はapply関数を使ってみよう。
モモノキ、apply関数はどういった処理ができるの?
apply関数は行列タイプのデータを行や列単位でまとめて処理ができる便利な関数だよ。
練習用のデータを適当に一つ準備して、apply関数のキホン操作を試してみよう。
# apply関数の練習用データ
X <- data.frame(
A = c(1, 2, 3, 4, 5),
B = c(6, 7, 8, 9, 10),
C = c(11, 12, 13, 14, 15)
)
X
class(X)
print(dim(X))
練習データは5行3列のデータフレームだね。
apply関数はどうやって使うの?
apply関数は第1引数にデータ、第2引数に1(行)また2(列)、第3引数に関数を指定するよ。
第1引数のデータは行列またはデータフレームを指定。第2引数は行単位にまとめて処理するときは1、列単位で処理したいときは2を指定。第3引数は合計や平均など、まとめ処理を行う関数を指定するよ。
さっそくやってみよう。ナノネ、練習データの各行の平均値をapply関数で求めてみて。行で平均を計算したいから、第2引数は1、第3引数はmean関数を指定すればOKだよ。
row.means <- apply(X, 1, mean) # 行ごとの平均
print(row.means)
できた。各行の平均値が出力されたみたい。
apply関数で行方向(第2引数=1)を指定した場合の処理イメージはこんな感じだよ。
apply(X, 1, mean)
次は列平均を求めてみて。列で平均する場合は第2引数に2を指定すればOKだよ。
col.means <- apply(X, 2, mean) # 列ごとの平均
print(col.means)
各列の平均値が計算できた。
apply関数で列方向(第2引数=2)を指定した場合の処理イメージはこんな感じだよ。
apply(X, 2, mean)
apply関数の第3引数(処理関数)をsumに変えて、列の合計値を求めてみよう。
col.sum <- apply(X, 2, sum) # 列ごとの合計
print(col.sum)
関数をsumに変更して、列合計もうまく計算できた。
applyに渡す関数を変更するだけだから、キホン上と一緒だね。
apply(X, 2, sum)
apply関数の第3引数は自作関数も使えるから試してみよう。自作関数は適当につくるとして、入力された値を10倍してその合計を返すことにしよう(練習なので関数の処理内容には特に意味ないよ)。
func1 <- function(data){
return (sum(data * 10)) # 入力データ10倍の合計
}
col.func1 <- apply(X, 2, func1) # 列ごとに自作関数を適用
print(col.func1)
自作関数を使う場合も、キホン一緒だよ。
apply(X, 2, func1)
自作関数を定義せずに、第3引数に関数を直接記載してもいいよ。
col.func1 <- apply(X, 2, function(x){sum(x * 10)})
print(col.func1)
便利さの実感がまだイマイチだけど、apply関数が使いこなせるように練習してみるよ。
apply関数のキホン的な使い方練習は以上で。
またね!
0 件のコメント :
コメントを投稿