第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` を指定する必要がなく、シンプルに書けます。データフレームを渡すと自動的に列ごとに処理されます。