[`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()` を呼ばずに完結する