如何使用Lubridate将日期格式化为“YYYY-Mon”?

10
我希望创建一个日期向量,包括两个特定时刻之间以1个月为步长的所有日期,就像这篇文章所描述的一样(创建两个日期之间的所有日期向量),然后将其转换成因子以进行数据可视化。
然而,我想要的日期格式是YYYY-Mon,例如2010-Feb。但迄今为止,我只能获得标准格式2010-02-01的日期,使用以下代码:
require(lubridate)
first <- ymd_hms("2010-02-07 15:00:00 UTC")
start <- ymd(floor_date(first, unit="month"))

last <- ymd_hms("2017-10-29 20:00:00 UTC")
end <- ymd(ceiling_date(last, unit="month"))

> start
[1] "2010-02-01"

> end
[1] "2017-11-01"

如何将格式更改为YYYY-Mon?

1个回答

10
你可以使用format()函数:
start %>% format('%Y-%b')

为了创建向量,使用seq()函数:
seq(start, end, by = 'month') %>% format('%Y-%b')

提示:在完整月份名称中使用大写字母'B': '%Y-%B'


可以的,谢谢。 现在问题是如何在按月序列中保持“%Y-%b”格式,从开始日期到结束日期? - Fabio Capezzuoli
1
太好了!你可以使用 seq() 函数:seq(start, end, by = 'month') %>% format('%Y-%b') - Augusto Fadel
是的,我也自己到达了那里。但无论如何,我很感激你的帮助。 - Fabio Capezzuoli
3
请注意,format()是一个基本的R函数,它会将向量从日期时间更改为字符。 - Susie Derkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接