我想获取 startDate
之间的日期序列和 endDate
通过将 1 个月添加到 startDate
.即,如果 startDate
是 2013-01-31 和 endDate
是 2013 年 7 月 31 日,我希望看到这样的日期:
"2013-01-31" "2013-02-28" "2013-03-31" "2013-04-30" "2013-05-31" "2013-06-30" "2013-07-31"
我试过
seq.Date(as.Date("2013-01-31"),by="month",length.out=7)
.但是这段代码的输出是这样的
> seq.Date(as.Date("2013-01-31"),by="month",length.out=7)
[1] "2013-01-31" "2013-03-03" "2013-03-31" "2013-05-01" "2013-05-31" "2013-07-01" "2013-07-31"
那么,获得正确输出的最简单解决方案是什么?
最佳答案
我必须在 R 中处理日期,我发现的最有用的日期数据包之一是 lubridate
.对于您的问题,您只需执行以下操作:
require(lubridate)
# ymd function parses dates in year-month-day format
startDate <- ymd('2013-01-31')
# The %m+% adds months to dates without exceeding the last day
myDates <- startDate %m+% months(c(0:6))
lubridate
也有许多其他的日期函数,我强烈建议你看看。
关于R:给日期加上 1 个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17681229/