見出し画像

データ解析の流れ (4): データのフィルタリング

前回は、データの選択を行いました。これは、データから必要な「」を選択するものでした。それに対して、データから必要な「」を取り出すのがフィルタリングの処理です。

filter()によるデータのフィルタリング

tidyverse には、フィルタリングするために filter() 関数があります。使い方は、フィルタリングの条件式を引数に指定します。下記に例を示します。

前回までの結果が、selected_data に格納されているとします。

> selected_data <- select(result, Symbol, Sample1, Sample2)
> selected_data
# A tibble: 3 × 3
  Symbol Sample1 Sample2
  <chr>    <dbl>   <dbl>
1 AAA          1       4
2 BBB          2       5
3 CCC          3       6

filter() 関数を使って、Symbol が "AAA" の行だけ取り出す処理です。

> filter(selected_data, Symbol == "AAA")

これで条件式に合う行だけが表示されます。

# A tibble: 1 × 3
  Symbol Sample1 Sample2
  <chr>    <dbl>   <dbl>
1 AAA          1       4
>

条件式の組み合わせ

複数の条件式を組み合わせて指定することも可能です。
例えば、「Sample1 の値が 1 以上」かつ「Sample2 の値が5以上」のものを取り出す場合の条件式は、「Sample1 > 1 & Sample2 > 5」です。

> filter(selected_data, Sample1 > 1 & Sample2 > 5)
# A tibble: 1 × 3
  Symbol Sample1 Sample2
  <chr>    <dbl>   <dbl>
1 CCC          3       6
>

条件式の「かつ」を意味するのが 「&」です。
一方、「または」を意味するのが「|」です。

> filter(selected_data, Sample1 > 1 | Sample2 > 5)
# A tibble: 2 × 3
  Symbol Sample1 Sample2
  <chr>    <dbl>   <dbl>
1 BBB          2       5
2 CCC          3       6
>

他のプログラムでは、「&&」、「||」と書く場合がありますが、 tidyverse では、1つだけ指定します。「&&」や「||」でも実行できてしまいますが、別の処理になってしまうので注意しましょう。

この記事が気に入ったらサポートをしてみませんか?