行列の一意化(スコープ付き関数)

概要

dplyrパッケージに含まれるdistinct()のスコープ付き関数は、行列の一意化を簡潔なコードで記述できる関数です。

関連ページ

関数

distinct_all(.tbl, .funs = list(), .keep_all = FALSE)
distinct_at(.tbl, .vars, .funs = list(), .keep_all = FALSE)
distinct_if(.tbl, .predicate, .funs = list(), .keep_all = FALSE)
引数指定説明
.tbl必須データフレーム
.funs任意値を加工する関数を指定する
.vars必須mutate_at()で使用する引数
対象となる列を変数または文字列で指定する
.predicate必須mutate_if()で使用する引数
対象となる列を返り値がBool型の関数で指定する

使い方

スコープ付き関数の基本的な使い方は専用の解説ページを参照してください。

解説用データフレーム

df <- tibble::tibble(
  x1 = c(1, 2, 3),
  x2 = c('A', 'B', 'C'),
)
> df
# A tibble: 3 x 2
     x1 x2
  <dbl> <chr>
1     1 A
2     2 B
3     3 C

1.一意の値の取得

1-1.基本的な使い方

# 列x1の一意の値を取得する
distinct_at(df, .vars = c('x1'))
# A tibble: 2 x 1
  x1
  <chr>
1 A
2 B

1-2.関数を利用した使い方

# 数値型の列を四所悟入して、一意の値を取得する
distinct_if(df, .predicate = is.numeric, .funs = round)
# A tibble: 3 x 1
     x2
  <dbl>
1     1
2     2
3     3
Sponsored Link