r - 按月年日期列排序数据框

标签 r dplyr lubridate zoo

我有一个数据框 df:

date        values
Apr-15        86
Apr-16        80
Apr-17        60
Aug-14        88
Aug-15        52
Aug-16        76

我想要的输出应该是:

 date        values
Aug-14        88
Apr-15        86
Aug-15        52
Apr-16        80
Aug-16        76
Apr-17        60 

我的日期格式不同,所以我无法做到这一点。

最佳答案

您可以通过粘贴任意日期值然后 order

将列转换为日期对象
df[order(as.Date(paste0("1-", df$date), "%d-%b-%y")), ]

#    date values
#4 Aug-14     88
#1 Apr-15     86
#5 Aug-15     52
#2 Apr-16     80
#6 Aug-16     76
#3 Apr-17     60

或者使用不需要日期的zoo::as.yearmon

df[order(zoo::as.yearmon(df$date, "%b-%y")), ]

数据

df <- structure(list(date = structure(1:6, .Label = c("Apr-15", "Apr-16", 
"Apr-17", "Aug-14", "Aug-15", "Aug-16"), class = "factor"), values = c(86L, 
80L, 60L, 88L, 52L, 76L)), class = "data.frame", row.names = c(NA, -6L))

关于r - 按月年日期列排序数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58814189/

相关文章:

r - dplyr 通过评估查找单元格值来改变特定列

r - 在 R 中使用 dplyr 包时出错

r - 计算代码覆盖率时 Travis-CI 出现 "failed to find package directory"错误

r - 使用 tidyverse 对大型时间序列数据集有条件聚合列

r - 将两个二进制变量合并为一个具有四个可能值的变量

r - dplyr数据透视表

r - 时间段 R 的条件总和

r - dplyr:lubridate:如何按周计算发生次数并在每日数据上分布

r - 按 ID 将数据帧分成 10 天的间隔

按数值向量中指定的数字重复向量的每个元素