在 R 中将日期偏移一个月

Man*_*anu 2 r

我有个约会,比方说 2020 年 7 月 7 日。

my_date <- as.Date("2020/07/07")
Run Code Online (Sandbox Code Playgroud)

我想将这个日期抵消一个月。所以它应该在 2020 年 8 月 7 日返回。

我试过,my_date + 30但如果一个月有 30 或 31 天,它就不起作用。

编辑

我的问题必须准确。如果日期是 2020 年 5 月 31 日怎么办?它应该抵消到 2020 年 6 月 30 日。请在 R 基础上提供帮助。

任何帮助将不胜感激。

Ron*_*hah 5

使用%m+%lubridate

library(lubridate)
my_date <- as.Date("2020/07/07")
my_date %m+% months(1)
#[1] "2020-08-07"
Run Code Online (Sandbox Code Playgroud)

my_date + months(1) 在这种情况下也适用,但如果是每月的最后一天,它会搞乱计算。

my_date <- as.Date("2020/05/31")
my_date + months(1)
#[1] NA

my_date %m+% months(1)
#[1] "2020-06-30"
Run Code Online (Sandbox Code Playgroud)