0

我在 R 中有以下 Df。

东风<-

Month      Count     Group
Dec-20     12        A2
Feb-21     30        R5
Mar-21     43        R5
Jan-21     90        B1 
Total      175       -

上面的Month数据框中杂乱无章,我需要按降序排列它们。

所需的 Df<-

Month      Count     Group
Mar-21     43        R5
Feb-21     30        R5
Jan-21     90        B1
Dec-20     12        A2 
Total      175       -
4

1 回答 1

2

您可以使用zoo::as.yearmon将字符值转换为可以排列的monthyearmon

library(dplyr)
df %>% arrange(desc(zoo::as.yearmon(Month, '%b-%y')))

#   Month Count Group
#1 Mar-21    43    R5
#2 Feb-21    30    R5
#3 Jan-21    90    B1
#4 Dec-20    12    A2
#5  Total   175     -

在基础 R 中,创建一个日期对象,然后使用order.

df[order(as.Date(paste0(df$Month, '-1'), '%b-%y-%d'), decreasing = TRUE), ]

数据

df <- structure(list(Month = c("Dec-20", "Feb-21", "Mar-21", "Jan-21", 
"Total"), Count = c(12L, 30L, 43L, 90L, 175L), Group = c("A2", 
"R5", "R5", "B1", "-")), class = "data.frame", row.names = c(NA, -5L))
于 2021-04-02T04:46:59.943 回答