r - 为绘图目的获取自定义日期格式时出现问题
问题描述
我想使用 ggplot 绘制几年的时间序列,x 轴上的日期格式为“MMM YYYY”,并按时间顺序排序。
迄今为止,我已经将所需的日期提取到一个字符变量中,但是当将月份/年份绘制为按字母顺序而不是按时间顺序排序时 - 我理解为什么会这样。因此,我尝试将变量强制为一个日期(格式为 MMM YYYY),并尝试了 as.Date 格式的所有可能排列,但无济于事。我正在使用的代码是...
df <- data.frame(c("16:45 11-Nov-17", "22:30 11-Jul-18", "01:24 30-Dec-18", "12:41 12-Jan-19", "13:13 11-Feb-19", "15:22 05-May-19"))
names(df) <- c("TDate")
Data <- mutate(df, Date = parse_date_time(df$TDate, "HM:dmy"),
MthY = as.Date(paste0(month(ymd_hms(Date), label = TRUE), " ", year(ymd_hms(Date))), format = "%b %Y"))
该代码不会生成任何错误消息,但无法呈现月/年 (MthY)
-# 小标题:-6 x 3 TDate 日期 MthY
1 16:45 11-Nov-17 2017-11-11 16:45:00 NA
2 22:30 11-Jul-18 2018-07-11 22:30: 00 不适用
3 01:24 30-Dec-18 2018-12-30 01:24:00 不适用
4 12:41 12-Jan-19 2019-01-12 12:41:00 不适用
5 13:13 11-2 月- 19 2019-02-11 13:13:00 不适用
6 15:22 05-May-19 2019-05-05 15:22:00 不适用
有没有人对此有任何想法?
解决方案
如果格式不存在,我们可以使用anytime
并添加格式 ( )addFormats
getFormats
library(anytime)
library(dplyr)
addFormats("%H:%M %d-%b-%y")
df %>%
mutate(MthY = format(anytime(TDate), "%b %Y"))
# TDate MthY
#1 16:45 11-Nov-17 Nov 2017
#2 22:30 11-Jul-18 Jul 2018
#3 01:24 30-Dec-18 Dec 2018
#4 12:41 12-Jan-19 Jan 2019
#5 13:13 11-Feb-19 Feb 2019
#6 15:22 05-May-19 May 2019
推荐阅读
- mongodb - 如何在填充函数中使用 $elemMatch
- asp.net - “c:\Data\imoltp_mod1”指定的路径不在有效目录中
- android - Libgdx 游戏落后于更好的手机
- mysql - org.hibernate.tool.hbm2ddl.SchemaUpdate 不向现有表定义添加新列
- json - 如何在 Go 中解码 base64 编码的 JSON
- lambda - 过滤字段中包含映射的对象并在映射中搜索与提供的集合中的至少一个键匹配的键
- angular8 - 带有 ConfirmDialog 的 PrimeNg TabView 不起作用
- firebase - 获取文档长度为 0,但数据存在于 Firestore 中
- javascript - 更改 API 调用后反应脚本停止工作
- mysql - 学说结合计数,分组选择