r - 按月年日期列排序数据框
问题描述
我有一个数据框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))
推荐阅读
- c# - 在 linq 表达式中创建新对象时获取列表中的当前索引位置
- export-to-csv - 从 MicroStrategy 中的某个组/项目中检索所有访问权限
- c# - 为什么在 EF Core 中使用 Include(或 ThenInclude)时不需要指定类型?
- html - 如何管理 css 媒体查询网格列
- java - 除以 0 但代码中没有零的错误
- docker - Docker-compose 卷无法按预期工作
- auth0 - auth0 获取后台配置文件信息
- python - 从 Olx 广告中抓取电话号码
- jquery - Jquery如何从开始将数据键推送到数组中
- angular - Angular 8 - 按顺序调用可观察对象