【问题标题】:Create sequence of date on every last day of month在每个月的最后一天创建日期序列
【发布时间】:2022-01-01 17:37:08
【问题描述】:

我正在尝试在每个月的最后一天创建一个日期序列。 例如,开始日期是“2018-01-31”。我想创建自开始日期以来每月最后一天的序列。

[1] "2018-01-31" "2018-02-28" "2018-03-31" "2018-04-30" "2018-05-31" "2018-06-30"

我正在尝试使用这种语法:

seq(as.Date("2018-01-31",format="%Y-%m-%d"),by="month",length.out=6)

但它给出了这个输出:

[1] "2018-01-31" "2018-03-03" "2018-03-31" "2018-05-01" "2018-05-31" "2018-07-01"

如何获取自开始日期以来每个月的最后一天?

【问题讨论】:

    标签: r date seq


    【解决方案1】:

    我们可以使用lubridate 包及其%m+% 运算符:

    library(lubridate)
    
    as.Date("2018-01-31") %m+% months(0:5)
    #> [1] "2018-01-31" "2018-02-28" "2018-03-31" "2018-04-30" "2018-05-31" "2018-06-30"
    

    【讨论】:

      【解决方案2】:

      如果你想要一个月的最后一天,而不是从 2018-01-31 开始,试试

      seq(as.Date("2018-02-01",format="%Y-%m-%d"),by="month",length.out=6) -1
      [1] "2018-01-31" "2018-02-28" "2018-03-31" "2018-04-30" "2018-05-31" "2018-06-30"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-07
        • 2018-05-16
        • 1970-01-01
        • 1970-01-01
        • 2010-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多