第4章 Rベースで抽出・集計 ・ ノック 54 / 100 ・ [[000 - はじめに(使い方と目次)|目次]]<br>
← 前 [[053 - 列ごとに一括計算する]] ・ 次 → [[055 - 欠損値を確認する]]
> [!info] `sapply()` はリストにも使える便利な関数
> `sapply()` は「リストやデータフレームの各要素(列)に関数を適用する」関数です。名前の `s` は simplify(簡略化)の意味で、結果をできるだけシンプルな形(ベクトルや行列)に整えて返します。データフレームに対して使うと、各列を順番に処理します。`apply()` と似ていますが、`sapply()` は行列以外にもリストなど幅広い入力に対応しています。
## 問題
`iris` の数値4列(1〜4列目)について、`sapply()` を使って列ごとの平均を求めてください。
> [!tip] ヒント
> `sapply(データ, 関数)` の形で書きます。前のノックの `apply()` と結果を比べてみましょう。
> [!success]- 回答を見る
> ```r
> sapply(iris[, 1:4], mean)
> ```
> ```
> Sepal.Length Sepal.Width Petal.Length Petal.Width
> 5.843333 3.057333 3.758000 1.199333
> ```
> `apply()` とまったく同じ結果が得られました。`sapply()` の場合は「列ごと」を表す `2` を指定する必要がなく、シンプルに書けます。データフレームを渡すと自動的に列ごとに処理されます。