使用R和lubridate生成一系列时间

时间:2017-02-14 19:28:40

标签: r date lubridate tidyverse

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

seq(today(), today()+dyears(1), 60)

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

"2017-02-14" "2017-04-15" "2017-06-14" "2017-08-13" "2017-10-12" "2017-12-11" "2018-02-09"

但是,是否有任何方法可以在中工作?也许类似于下面的代码,我认为它可以工作,但没有:

seq(as_date(2000-01-01), as_date(2017-01-01), dyears(1))
  

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

我知道可以将dyears(1)更改为36530,如果只需要一年或一个月的近似值,但是想知道是否有更聪明的方法来闰年和几个月考虑。

为了提供更多上下文,我想生成一个日期向量,以便我可以自定义scale_x_date中的ggplot。而不是让waiver()显示2000,2003,2006,2009,我希望情节能够包含所有个别年份,甚至每三个月一次。

1 个答案:

答案 0 :(得分:3)

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

seq.Date(from=as.Date("2000-01-01"), to=as.Date("2010-01-01"), by="month")

或:

seq(as.Date("2000/1/1"), by = "month", length.out = 12)