第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 が無くても使える便利な基本関数です。