我有一个可变的日期,比如"2019-2“和"2019-10”。然而,当创建日期为"2019-10“的图形比"2019-2”更早时,我需要在ggplot中绘制图形。我怎么才能修复它?我试着做了以下事情:
as.Date("2019-2",format="%Y-%m")
as.Date("2019-10",format="%Y-%m")但是,它显示为NA。
发布于 2020-07-04 20:36:10
另一种方法是使用带有month数字格式的sprintf()来添加前导零。
yr_month <- c("2020-1","2020-2","2020-10")
sprintf("%4d-%02d",as.numeric(substr(yr_month,1,4)),as.numeric(substr(yr_month,6,7)))对输出执行...and操作:
> sprintf("%4d-%02d",as.numeric(substr(yr_month,1,4)),as.numeric(substr(yr_month,6,7)))
[1] "2020-01" "2020-02" "2020-10"
> 发布于 2020-07-04 21:05:31
你需要在中人工添加一个日期值来解析,例如"2019-10“作为一个Date对象。假设你有一些向量dates格式的日期,有一堆选项。
基数R:
format(as.Date(paste0(dates, "-01")), "%Y-%m")使用lubridate包:
format(lubridate::parse_date_time(dates, "ym"), "%Y-%m")但是,format会将Date对象转换为character对象。如果您认为将来需要类似日期的行为,则可以将dates转换为POSIXct对象……
as.POSIXct(paste0(dates, "-01"))...and让ggplot通过将以下内容添加到绘图中来处理将它们格式化为“年-月”的问题(假设日期在x轴上):
ggplot(...) +
... +
scale_x_datetime(date_breaks = "1 month", date_labels = "%Y-%m")发布于 2020-07-04 20:32:40
尝试将一天添加到您的一天,然后使用format
format(as.Date("2019-2-1",format="%Y-%m-%d"),"%Y-%m")
"2019-02"
format(as.Date("2019-10-1",format="%Y-%m-%d"),"%Y-%m")
"2019-10"https://stackoverflow.com/questions/62729041
复制相似问题