关于R.中日期的快速提问.看看这段代码:
Sys.Date() - months(3)
# [1] "2013-12-31"
Sys.Date() - months(18)
# [1] NA
Run Code Online (Sandbox Code Playgroud)
我已经加载了包lubridate并按照提供的说明进行操作,我无法理解这种行为.它过去工作得很好,今天是我注意到从今天的日期NA减去超过12个月的第一天(减去不到12个月的工作正常).
我很感激,如果有人能够向我解释为什么这不起作用,和/或建议一个更"强大"的方式.它与今天是本月的最后一天(第31天)有关吗?
我问,因为这有效:
Sys.Date() - years(2)
# [1] "2012-03-31"
Run Code Online (Sandbox Code Playgroud)
Hen*_*rik 13
在lubridate功能%m+%和%m-%设计来处理这个问题("加减几个月的日期不超过一个月的新的最后一天").
library(lubridate)
Sys.Date() %m-% months(18)
# [1] "2012-09-30"
# or to make it reproducible if Sys.Date() happens to be different from that in OP
as.Date("2014-03-31") %m-% months(18)
# [1] "2012-09-30"
# example of %m+%
as.Date("2014-01-31") + months(1)
# [1] NA
as.Date("2014-01-31") %m+% months(1)
# [1] "2014-02-28"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2701 次 |
| 最近记录: |