我正在尝试将一个月添加到我拥有的日期。但是到目前为止,它不可能以直接的方式进行。以下是我尝试过的。
d <- as.Date("2004-01-31")
d + 60
# [1] "2004-03-31"
添加不会有帮助,因为月份不会重叠。
seq(as.Date("2004-01-31"), by = "month", length = 2)
# [1] "2004-01-31" "2004-03-02"
以上可能有效,但同样不是直截了当的。此外,它还增加了 30 天或其他日期,有以下问题
seq(as.Date("2004-01-31"), by = "month", length = 10)
# [1] "2004-01-31" "2004-03-02" "2004-03-31" "2004-05-01" "2004-05-31" "2004-07-01" "2004-07-31" "2004-08-31" "2004-10-01" "2004-10-31"
在上面,前两个日期,月份没有改变。
以下方法也失败了一个月但成功了一年
d <- as.POSIXlt(as.Date("2010-01-01"))
d$year <- d$year +1
d
# [1] "2011-01-01 UTC"
d <- as.POSIXlt(as.Date("2010-01-01"))
d$month <- d$month +1
d
错误
format.POSIXlt(x, usetz = TRUE)
:无效的“x”参数
这样做的正确方法是什么?