日期,润滑增加1个月

时间:2016-02-04 20:12:47

标签: r lubridate

我无法使用lubridate从2013-09-30(9月的最后一天)到2013-10-31(10月的最后一天)增加1个月。

文档中提供的示例效果很好:

# get a vector of months (last day of the month)
vct_dates <- ymd("2013-01-31") %m+% months(0:11)

以下按预期给出2013-10-31:

vct_dates[10]

而且,以下内容给出了2013-09-30:

vct_dates[9]

但是,当我尝试将2013-09-30增加一个月时,我得到了错误的答案:

# should be 2013-10-31 but is 2013-10-30
vct_dates[9] %m+% months(1)

任何想法......?

2 个答案:

答案 0 :(得分:2)

R和Lubridate都没有“月中最后一天”的概念。但是你可以欺骗它:拿下个月的第一天,将它增加一个月 - 并减去一天:

R> seq(as.Date("2016-10-01"), by="1 month", len=2)-1
[1] "2016-09-30" "2016-10-31"
R> 

这适用于基础R,没有任何附加软件包。

答案 1 :(得分:1)

怎么样:

=SUM(COUNTIFS('Cumulative Complaints'!K:K, "<>"&-1,'Cumulative Complaints'!K:K, "<="&5,'Cumulative Complaints'!L:L, {2,3,4}))/SUM(COUNTIF('Cumulative Complaints'!L:L, {2,3,4}))