概要
dplyrパッケージに含まれるfilter(), slice()は、条件と一致する行を取得する関数です。
# 論理式と一致する行を取得する
filter(.data, ..., .preserve = FALSE)
# 行番号と一致する行を取得する
slice(.data, ..., .preserve = FALSE)
| 引数 | 指定 | 説明 | 
|---|---|---|
| .data | 必須 | テーブルを指定する | 
| … | 必須 | 取得する行の条件(論理式または行番号)を指定する | 
| .preserve | 任意 | グループ化構造を維持するか再計算するかを指定する デフォルト(FALSE)では再計算を行います | 
関連ページ
具体例
## テーブルの作成
tbl <- tibble(
  x1 = c('A', 'B', 'C'),
  x2 = c(1, 2, 3),
)
## テーブルの確認
tbl
# x1       x2
# <chr> <dbl>
# A         1
# B         2
# C         3
## 1.論理式と一致する行を取得する
filter(tbl, x2 %% 2 == 1)
# x1       x2
# <chr> <dbl>
# A         1
# C         3
## 2-1.行番号と一致する行を取得する
slice(tbl, c(1, 3))
# x1       x2
# <chr> <dbl>
# A         1
# C         3
## 2-2.行番号と一致する行を取得する(補集合)
slice(tbl, -1)
# x1       x2
# <chr> <dbl>
# B         2
# C         3
## 3-1.グループ化構造を再計算する(デフォルトの挙動)
group_by(tbl, x1) %>%
  filter(x2 %% 2 == 1, .preserve = FALSE) %>%
  summarise(n = n())
# x1        n
# <chr> <dbl>
# A         1
# C         1
## 3-2.グループ化構造を維持する
group_by(tbl, x1) %>%
  filter(x2 %% 2 == 1, .preserve = TRUE) %>%
  summarise(n = n())
# x1        n
# <chr> <dbl>
# A         1
# B         0
# C         1
 
 
  
