[R]{base} by() : データフレームに含まれる各グループごとに集計関数を実行する関数

説明

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

関連

[R]{base}tapply() : ラジッド配列の各要素に指定した関数を適用する関数

コメント