因此,我已经阅读了许多方法,可以通过基本R或通过tidyverse方法对其名称进行排序,但所有方法都需要用户定义的函数和一些非常冗长的语言。
这是一个例子: Sorting month chronologicaly with arrange() from dplyr
这几乎是涉及日期或时间的任何分析的基本需求。 Surly必须有一个函数,比如arrange()with" calendar" (也许是descd-calendar)论点。还是我错过了什么?
答案 0 :(得分:4)
也许根据month.name
中的位置排列,可以在match(months, month.name)
找到?
df <- data.frame(months = sample(month.name, 5))
df
# months
#1 September
#2 July
#3 December
#4 February
#5 January
df %>% arrange(match(months, month.name))
# months
#1 January
#2 February
#3 July
#4 September
#5 December
答案 1 :(得分:0)
您可以将它们转换为Date
,然后对它们进行排序。
library(anydate); library(dplyr);
c('January', 'February', 'December', 'June') %>% anydate %>% sort
如果你想把它们保存为字符串,你可以使用Psidom的方法或
c('January', 'February', 'December', 'June') %>% (function(x) x[x %>% anydate %>% order])