R で tapply() 関数を使用する方法 (例付き)
R のtapply()関数を使用すると、別のベクトルでグループ化されたベクトルに関数を適用できます。
この関数は次の基本構文を使用します。
タッパー(X、INDEX、FUN、..)
金:
- X : 関数を適用するベクトル
- INDEX : グループ化するベクトル
- FUN : 適用する機能
次の例は、R の次のデータ フレームでこの関数を実際に使用する方法を示しています。
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(14, 19, 13, 8, 15, 15, 17, 19),
assists=c(4, 3, 3, 5, 9, 14, 15, 12))
#view data frame
df
team position points assists
1 AG 14 4
2 AG 19 3
3 AF 13 3
4 AF 8 5
5 BG 15 9
6 BG 15 14
7 BF 17 15
8 BF 19 12
例 1: 変数ごとにグループ化された変数に関数を適用する
次のコードは、 tapply()関数を使用して、チームごとにグループ化された平均ポイント値を計算する方法を示しています。
#calculate mean of points, grouped by team
tapply(df$points, df$team, mean)
AB
13.5 16.5
結果から次のことがわかります。
- チーム A の平均ポイント値は13.5です。
- チーム B の平均ポイント値は16.5です。
データ フレーム内の NA 値を無視して平均を計算することを示すために、関数の後にna.rmなどの追加の引数を含めることもできることに注意してください。
#calculate mean of points, grouped by team
tapply(df$points, df$team, mean, na. rm = TRUE )
AB
13.5 16.5
例 2: 複数の変数でグループ化された変数に関数を適用する
次のコードは、 tapply()関数を使用して、チームとポジションごとにグループ化された平均ポイント値を計算する方法を示しています。
# calculate mean of points, grouped by team and position
tapply(df$points, list(df$team, df$position), mean, na. rm = TRUE )
FG
A 10.5 16.5
B 18.0 15.0
結果から次のことがわかります。
- チーム A とポジション F の平均ポイント値は10.5です。
- チーム A とポジション G の平均ポイント値は16.5です。
- チーム B とポジション F の平均ポイント値は18.0です。
- チーム B とポジション G の平均ポイント値は15.0です。
注: この例では 2 つの変数でグループ化していますが、 list()関数に必要なだけ変数を含めて、さらに多くの変数をグループ化することができます。
追加リソース
次のチュートリアルでは、R の他の一般的な関数の使用方法について説明します。