我想把一个月添加到我拥有的日期.但到目前为止它不可能以直接的方式进行.以下是我试过的.
d <- as.Date("2004-01-31")
d + 60
# [1] "2004-03-31"
Run Code Online (Sandbox Code Playgroud)
添加不会有帮助,因为月份不会重叠.
seq(as.Date("2004-01-31"), by = "month", length = 2)
# [1] "2004-01-31" "2004-03-02"
Run Code Online (Sandbox Code Playgroud)
以上可能有用,但同样不是直截了当.此外它还增加了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"
Run Code Online (Sandbox Code Playgroud)
在上面,对于前2个日期,月份没有变化.
以下方法也在一个月内失败,但是一年的成功
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
Run Code Online (Sandbox Code Playgroud)
错误
format.POSIXlt(x, usetz = TRUE):无效'x'参数
这样做的正确方法是什么?