説明
by()関数は、tapply()をデータフレームに適用するオブジェクト志向のラッパーである。
複数のグループのデータを含むデータセットがある時に、各グループごとに集計関数を実行する関数である。例えば男と女からなるデータがある時、男グループ、女グループそれぞれの平均を求めるというような場合に使用できる。
使用法
by(data, INDICES, FUN, …, simplify = TRUE)
引数
data : Rオブジェクト、通常はデータフレーム。マトリックスでも可。
INDICES : 因子あるいは因子のリスト。各因子の長さがnrow(data)と等しい必要がある。要するにデータフレームに含まれる行数と同じ数の因子のリスト。
FUN : データフレームのサブセットに対して適用する関数
… : FUNに対する引数。
simplify : 論理値。tapply()のそれと同じ。
返り値
クラスbyのオブジェクト。各サブセットに対する関数実行結果を返す。simlilfy引数がfalseの場合は返り値はリストであり、それ以外の場合はリストまたは配列である(tapply()を参照)。
実行例
by> by(warpbreaks[, 1:2], warpbreaks[,"tension"], summary)
warpbreaks[, "tension"]: L
breaks wool
Min. :14.00 A:9
1st Qu.:26.00 B:9
Median :29.50
Mean :36.39
3rd Qu.:49.25
Max. :70.00
-----------------------------------------------------------------
warpbreaks[, "tension"]: M
breaks wool
Min. :12.00 A:9
1st Qu.:18.25 B:9
Median :27.00
Mean :26.39
3rd Qu.:33.75
Max. :42.00
-----------------------------------------------------------------
warpbreaks[, "tension"]: H
breaks wool
Min. :10.00 A:9
1st Qu.:15.25 B:9
Median :20.50
Mean :21.67
3rd Qu.:25.50
Max. :43.00

コメント