输出表的顺序不正确,01/01之后变成01/02而不是03/01,如何调整?
df1<- structure(
list(date2= c("01-01-2021","01-01-2021","03-01-2021","03-01-2021","01-02-2021","01-02-2021"),
Category= c("ABC","CDE","ABC","CDE","ABC","CDE"),
coef= c(5,4,0,2,4,5)),
class = "data.frame", row.names = c(NA, -6L))
x<-df1 %>%
group_by(date2) %>%
summarize(across("coef", sum),.groups = 'drop')
> x
# A tibble: 3 x 2
date2 coef
<chr> <dbl>
1 01-01-2021 9
2 01-02-2021 9
3 03-01-2021 2
预期输出表
date2 coef
<chr> <dbl>
1 01-01-2021 9
2 03-01-2021 2
3 01-02-2021 9
如果我有以下代码:
df1<- structure(
list(date2= c("01-01-2022","01-01-2022","03-01-2021","03-01-2021","01-02-2021","01-02-2021"),
Category= c("ABC","CDE","ABC","CDE","ABC","CDE"),
coef= c(5,4,0,2,4,5)),
class = "data.frame", row.names = c(NA, -6L))
x<-df1 %>%
group_by(date2) %>%
summarize(across("coef", sum),.groups = 'drop')%>%
arrange(date2 = as.Date(date2, format = "%d-%m-%y"))
> x
# A tibble: 3 x 2
date2 coef
<chr> <dbl>
1 01-01-2022 9
2 03-01-2021 2
3 01-02-2021 9
此顺序不正确,因为 01-01-2022
必须是最后一个而不是第一个。
最佳答案
您可以将日期列转换为日期格式,并对其进行排列。我还建议您对日期列使用日期格式,以便将来进行数据处理。
基础R
x$date2 <- as.Date(x$date2, format = "%d-%m-%Y")
x[order(x$date2),]
dplyr
x %>%
arrange(date2 = as.Date(date2, format = "%d-%m-%Y")
# A tibble: 3 x 2
date2 coef
<chr> <dbl>
1 01-01-2021 9
2 03-01-2021 2
3 01-02-2021 9
关于r - 调整输出表中的日期顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70712669/