第4章 Rベースで抽出・集計 ・ ノック 51 / 100 ・ [[000 - はじめに(使い方と目次)|目次]]<br>
← 前 [[050 - 種類ごとの個数を数える]] ・ 次 → [[052 - グループ別に集計する]]
> [!info] `tapply()` でグループ別に関数を適用する
> `tapply()` は「グループ別に関数を適用する」関数です。名前の `t` は table の意味で、テーブル(表)形式で結果を返します。使い方は `tapply(計算したい数値列, グループを表す列, 使いたい関数)` の順番です。たとえば「種類ごとの Sepal.Length の平均」を求めるには `tapply(iris$Sepal.Length, iris$Species, mean)` と書きます。
## 問題
Species(種類)ごとに `Sepal.Length` の平均を `tapply()` で求めてください。
> [!tip] ヒント
> 第1引数に数値列、第2引数にグループ列、第3引数に `mean` を渡します。`mean` はカッコ不要で関数名だけ書きます。
> [!success]- 回答を見る
> ```r
> tapply(iris$Sepal.Length, iris$Species, mean)
> ```
> ```
> setosa versicolor virginica
> 5.006 5.936 6.588
> ```
> virginica のがく片がもっとも長く、setosa がもっとも短いことがわかります。`mean` の部分を `sd` や `max` に変えれば標準偏差や最大値も同じ書き方で求められます。