以下R行为让我感到困惑:
true
为什么第一个工作而第二个不工作?
答案 0 :(得分:1)
这是故意的。
您可以阅读lubridate documentation。
具体来说,你可以这样做:
EndDate%m-%months(2)
[1] "2016-02-29"
这将执行减法并自动将日期回滚到第一个真实日期'如果减法导致非实际日期。
请注意,如果您想要前进,那么您必须做更多的工作(据我所知,我希望有一个像%m-f%
这样的简单操作符或其他一些操作符推导已存在的%m-%
)。但是这样的事情会起作用:
EndDate%m-%months(2) + if(is.na(EndDate-months(2))) {days(1)} else {0}
"2016-03-01"