使用R和lubridate生成时间序列

car*_*pch 5 r date lubridate tidyverse

有没有一种有效的方法来生成带有tidyverse和的时间序列向量lubridate?我知道seq()当一个使用日期数作为间隔时,这两个方法都可以使用。例如,使用输入:

seq(today(), today()+dyears(1), 60)
Run Code Online (Sandbox Code Playgroud)

一个人可以获得间隔60天的一系列日期

"2017-02-14" "2017-04-15" "2017-06-14" "2017-08-13" "2017-10-12" "2017-12-11" "2018-02-09"
Run Code Online (Sandbox Code Playgroud)

然而,有没有什么办法,这可以为工作呢?也许与下面的代码类似,我认为可以,但是没有用:

seq(as_date(2000-01-01), as_date(2017-01-01), dyears(1))
Run Code Online (Sandbox Code Playgroud)

错误:持续时间类不兼容(持续时间,数字)。请胁迫as.duration

我知道可以更改dyears(1)365或者30仅需要近似年份或月份,但是我想知道是否存在更聪明的方法来考虑leap年和月份。


为了提供更多上下文,我想生成一个日期向量,以便可以自定义scale_x_datein ggplotwaiver()我不希望显示2000、2003、2006、2009,而是希望该图可以包含所有年份,甚至可能每三个月显示一次。

Dan*_*Dan 4

你可以尝试使用 seq.Date():

seq.Date(from=as.Date("2000-01-01"), to=as.Date("2010-01-01"), by="month")
Run Code Online (Sandbox Code Playgroud)

或者:

seq(as.Date("2000/1/1"), by = "month", length.out = 12)
Run Code Online (Sandbox Code Playgroud)