行・列の並び替え

行の並び替え

dplyr::arrange

  • デフォルトは昇順
    • 引数の変数は、並び替えの際、前から順に優先される
      • 一つ前の変数の値が同じ場合に、次の変数の値が基準として利用される
    • 降順にしたければ変数をdesc()で囲むか、変数名の前にマイナスを付ける
dplyr::storms |> 
  dplyr::arrange(
    year |> desc(), ## 1番目に優先
    month |> dplyr::desc(), ## 2番目に優先
    day |> dplyr::desc(), ## 3番目に優先
    hour |> dplyr::desc() ## 4番目に優先
  )
  • 変数ごとに降順指定していくのが面倒ならば、いったん昇順で指定した後に全体を逆順に並び替える方法もあり
    • 全体を逆順にするには、行番号たるdplyr::row_number()を基準に並び替える
dplyr::storms |> 
  dplyr::arrange(year, month, day, hour) |> 
  dplyr::arrange(
   dplyr::row_number() |> dplyr::desc()
  )

列の並び替え

dplyr::relocate

  • デフォルトでは、指定した列が一番左に移動する
    • 異動する位置を指定したければ、.beforeオプションや.afterオプションで、移動したい場所の隣にある列を指定
dplyr::storms |> 
  dplyr::relocate(wind)
dplyr::storms |> 
  dplyr::relocate(wind, .after = name) # name 列の後に持ってくる