如何重新排序df中的月份列以匹配数据帧中正确的月份顺序?

时间:2019-11-13 20:49:43

标签: r dataframe dplyr tidyverse

我有一个由六列组成的数据框-其中之一是月。我想对该列进行重新排序,以匹配月份的顺序(一月,二月,三月,四月,五月,六月等)。我想对所有行进行重新排序,以便数据也根据月份的变化与新订单匹配(即,V1也会随着重新排序而移动。

我打算编写一个函数来执行此操作,但是我确定有更简单的方法(程序包)可以执行此操作。

这是我的df:

library(tidyverse)

# Dataframe
df <- tribble(
    ~ID, ~Month, ~V1, ~V2, ~V3,
    1,  "Jan",   2,  3,  5,
    1,  "Feb",   3,  4,  6,
    1,  "Mar",   7,  8,  9,
    2,  "May",   1,  1,  1,
    2,  "Feb",   2,  3,  4,
    2,  "June",   7,  8,  8
)
df

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

一个更简单的选择是match使用内置的“ month.abb”

library(dplyr)
df %>%
    arrange(match(Month, month.abb))

如果是全名而不是缩写,请使用month.name

df %>%
   arrange(match(Month, month.name))