R使用lubridate减去6个月,但日期不存在?[重复]

gab6jxml  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(110)
    • 此问题在此处已有答案**:

Add (subtract) months without exceeding the last day of the new month(3个答案)
3天前关闭。
我想从一个日期减去6个月,但是使用lubridate我得到了一些NA。

> as.Date("2013-12-31") - months(6)
[1] NA
> as.Date("2013-12-30") - months(6)
[1] "2013-06-30"
> as.Date("2014-01-01") - months(6)
[1] "2013-07-01"
> as.Date("2012-12-31") - months(6)
[1] NA
> as.Date("2014-12-31") - months(6)
[1] NA
>

是因为没有"2013 - 06 - 31",六月只有30天吗?在这种情况下,我可能只需要减去366/2 = 183天。

ehxuflar

ehxuflar1#

使用%m-%运算符:

as.Date("2013-12-31") %m-% months(6)
#[1] "2013-06-30"

相关问题