在每个月的最后一天创建日期序列
Create sequence of date on every last day of month
我正在尝试在每个月的最后一天创建一个日期序列。
例如,开始日期是“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"
如何获取从开始日期开始每个月的最后一天?
如果您想要月份的最后一天,而不是从 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"
我们可以使用 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"
我正在尝试在每个月的最后一天创建一个日期序列。 例如,开始日期是“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"
如何获取从开始日期开始每个月的最后一天?
如果您想要月份的最后一天,而不是从 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"
我们可以使用 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"