行の並べ替え(スコープ付き関数)

概要

dplyrパッケージに含まれるarrange()のスコープ付き関数は、行の並べ替えを簡潔なコードで記述できる関数です。

関連ページ

関数

arrange_all(.data, .funs = list(), ..., .by_group = FALSE)
arrange_at(.data, .vars, .funs = list(), ..., .by_group = FALSE)
arrange_if(.data, .predicate, .funs = list(), ..., .by_group = FALSE)
引数指定説明
.data必須データフレーム
.by_group必須グループ化された列を並べ替えの対象にする場合はTRUEを指定する
.funs任意昇順降順を指定( ~ . で昇順  desc で降順)
.vars必須arrange_at()で使用する引数
対象となる列を変数または文字列で指定する
.predicate必須arrange_if()で使用する引数
対象となる列を返り値がBool型の関数で指定する

使い方

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

解説用テーブル

df <- tibble::tibble(
  x1 = c(2, 1, 2, 1, 2, 1),
  x2 = c(3, 2, 1, 1, 2, 3),
)
> df
# A tibble: 6 x 2
     x1    x2
  <dbl> <dbl>
1     2     3
2     1     2
3     2     1
4     1     1
5     2     2
6     1     3

1.全ての列を並べ替える

arrange_all()では列の優先順位を指定できないため、あらかじめselect()で列を並べ替える必要があります。昇順で並べ替える時は.funsの指定は不要です。

# 全ての列を降順に並べ替える
arrange_all(df, .funs = desc)
# A tibble: 6 x 2
     x1    x2
  <dbl> <dbl>
1     2     3
2     2     2
3     2     1
4     1     3
5     1     2
6     1     1
Sponsored Link