第5章 tidyverse(dplyr)で再現 ・ ノック 61 / 100 ・ [[000 - はじめに(使い方と目次)|目次]]<br>
← 前 [[060 - データを tibble にする]] ・ 次 → [[062 - 複数条件で行を絞る]]
> [!info] filter() は「条件に合う行だけ残す」動詞です
> dplyrでは、データを操作する関数を「**動詞(verb)**」と呼びます。`filter()`(フィルター)はその中の一つで、条件に合う行だけを残す動詞です。Excelの「フィルター機能」と同じ感覚です。
>
> 書き方は `filter(データフレーム, 条件)` です。「データフレームの中から、条件が TRUE の行だけ取り出す」と読みます。Rベースでは `iris[iris$Species == "setosa", ]` のように `
や `[` を組み合わせて書いていましたが、`filter()` を使うと列名をそのまま書けるので読みやすくなります。
## 問題
`iris` から Species が "setosa" の行だけを取り出し、先頭3行を表示してみましょう。
> [!tip] ヒント
> `filter(iris, Species == "setosa")` で setosa だけに絞れます。`==` は「等しい」を意味します。
> [!success]- 回答を見る
> ```r
> library(dplyr)
> filter(iris, Species == "setosa") |> head(3)
> ```
> ```
> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
> 1 5.1 3.5 1.4 0.2 setosa
> 2 4.9 3.0 1.4 0.2 setosa
> 3 4.7 3.2 1.3 0.2 setosa
> ```
> Rベースでは `iris[iris$Species == "setosa", ]` と書いていたものが、`filter(iris, Species == "setosa")` とすっきり書けます。