行の取得

概要

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
Sponsored Link