第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")` とすっきり書けます。