[`dplyr::filter()`](https://dplyr.tidyverse.org/reference/filter.html) 内で `%in%` 演算子を使用することで、複数の値に対する条件指定をショートカットできる。これにより、OR 演算子 (`|`) を繰り返し使用した条件よりもコードが読みやすくなり、記述量も大幅に削減される。
```r
# %in%演算子を使用したショートカット記法
diamonds |>
filter(cut %in% c("Good", "Very Good", "Premium"))
# 上記は以下と同じ結果
diamonds |>
filter(cut == "Good" | cut == "Very Good" | cut == "Premium")
```
```
# A tibble: 30,779 × 10
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
2 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
3 0.29 Premium I VS2 62.4 58 334 4.2 4.23 2.63
4 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
5 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
6 0.24 Very Good I VVS1 62.3 57 336 3.95 3.98 2.47
7 0.26 Very Good H SI1 61.9 55 337 4.07 4.11 2.53
8 0.23 Very Good H VS1 59.4 61 338 4 4.05 2.39
9 0.3 Good J SI1 64 55 339 4.25 4.28 2.73
10 0.22 Premium F SI1 60.4 61 342 3.88 3.84 2.33
# ℹ 30,769 more rows
# ℹ Use `print(n = ...)` to see more rows
```
## 関連ノート
- **[前提]** [[dplyr の filter() で論理演算子を使用する]]: 本ノートの `%in%` ショートカットは、この OR (`|`) 連結の冗長さを解消する書き換え
- **[対比]** [[dplyr の filter() で閉区間の範囲指定をショートカットする]]: 本ノートの `%in%` (OR 連結のショートカット) と対になる姉妹記事