[`dplyr::arrange()`](https://dplyr.tidyverse.org/reference/arrange.html) は、データフレームの行を指定した列の値に基づいて並び替える関数である。デフォルトでは昇順で並び替えが行われ、[`dplyr::desc()`](https://dplyr.tidyverse.org/reference/desc.html) を組み合わせて使用すると降順で並び替えが行われる。また、複数の列を指定することで階層的な並び替えも可能である。
```r
# フリッパーの長さで昇順に並び替え、同じ値の場合は体重の重い順でに並び替え
penguins |>
arrange(flipper_length_mm, desc(body_mass_g))
```
```
# A tibble: 344 × 8
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex year
<fct> <fct> <dbl> <dbl> <int> <int> <fct> <int>
1 Adelie Biscoe 37.9 18.6 172 3150 female 2007
2 Adelie Biscoe 37.8 18.3 174 3400 female 2007
3 Adelie Torgersen 40.2 17 176 3450 female 2009
4 Adelie Dream 37.2 18.1 178 3900 male 2007
5 Adelie Dream 39.5 16.7 178 3250 female 2007
6 Chinstrap Dream 46.1 18.2 178 3250 female 2007
7 Adelie Dream 33.1 16.1 178 2900 female 2008
8 Adelie Dream 37.5 18.9 179 2975 NA 2007
9 Adelie Biscoe 40.5 18.9 180 3950 male 2007
10 Adelie Biscoe 38.8 17.2 180 3800 male 2007
# ℹ 334 more rows
# ℹ Use `print(n = ...)` to see more rows
```
> [!warning]
> 欠損値を含む列をソートする際、欠損値はデータフレームの末尾に配置される。
## 関連ノート
- **[派生]** [[dplyr の count() を使用し、group_by() と summarize(n = n()) をショートカットする]]: `sort = TRUE` で件数順ソートを一度に済ませられるため、件数降順であれば `arrange()` を呼ばずに完結する