列の選択(スコープ付き関数)

概要

dplyrパッケージに含まれるselect()とrename()のスコープ付き関数は、列の選択(取得・並べ替え・改称)を簡潔なコードで記述できる関数です。

関連ページ

関数

# 列の選択(取得・並べ替え・改称)を行う
select_all(.tbl, .funs = list(), ...)
select_at(.tbl, .vars, .funs = list(), ...)
select_if(.tbl, .predicate, .funs = list(), ...)

# 列の改称のみを行う
rename_all(.tbl, .funs = list(), ...)
rename_at(.tbl, .vars, .funs = list(), ...)
rename_if(.tbl, .predicate, .funs = list(), ...)
引数指定説明
.tbl必須データフレーム
.funs任意列名を変更したい場合は関数を指定する
.vars必須select_at(), rename_at()で使用する引数
対象となる列を変数または文字列で指定する
.predicate必須select_if(), rename_if()で使用する引数
対象となる列を返り値がBool型の関数で指定する

使い方

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

解説用データフレーム

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

1.列の取得と改称

# 'x'を'y'に置き換える関数
x2y <- function(str) str_replace(str, 'x', 'y')

# 数値型の列を取得して、列名の'x'を'y'に置き換える
select_if(df, .predicate = is.numeric, .funs = x2y)
# A tibble: 3 x 1
     y2
  <dbl>
1     1
2     2
3     3

2.列の改称のみ

# 数値型の列の列名の'x'を'y'に置き換える
rename_if(df, .predicate = is.numeric, .funs = x2y)
# A tibble: 3 x 2
  x1       y2
  <chr> <dbl>
1 A         1
2 B         2
3 C         3
Sponsored Link