第4章 Rベースで抽出・集計 ・ ノック 46 / 100 ・ [[000 - はじめに(使い方と目次)|目次]]<br> ← 前 [[045 - 複数条件で絞る]] ・ 次 → [[047 - 必要な列だけ選ぶ]] > [!info] `subset()` を使うと読みやすくなる > 前のノックで使った `iris[iris$Species == ..., ]` という書き方は確実ですが、`iris
を何度も繰り返すため読みにくくなりがちです。`subset()` 関数を使うと、`data =` でデータを指定したあとは列名だけで条件を書けるので、コードがすっきりします。書き方は `subset(データ, 条件式)` です。条件式の中では `iris
を省略できます。 ## 問題 `subset()` を使って、Species が `"virginica"` かつ Petal.Length が 6 より大きい行を取り出してください。 > [!tip] ヒント > `subset(iris, Species == "virginica" & Petal.Length > 6)` のように、条件式の中では `iris
をつけずに列名だけ書けます。 > [!success]- 回答を見る > ```r > subset(iris, Species == "virginica" & Petal.Length > 6) > ``` > ``` > Sepal.Length Sepal.Width Petal.Length Petal.Width Species > 106 7.6 3.0 6.6 2.1 virginica > 108 7.3 2.9 6.3 1.8 virginica > 110 7.2 3.6 6.1 2.5 virginica > 118 7.7 3.8 6.7 2.2 virginica > 119 7.7 2.6 6.9 2.3 virginica > 123 7.7 2.8 6.7 2.0 virginica > 131 7.4 2.8 6.1 1.9 virginica > 132 7.9 3.8 6.4 2.0 virginica > 136 7.7 3.0 6.1 2.3 virginica > ``` > virginica の中で Petal.Length が 6 を超える花は9個でした。`subset()` は tidyverse が無くても使える便利な基本関数です。