给定一个日期并使用 lubridate 包获取上个月的开始日期

Given a date and get the beginning date of previous month using lubridate package

给定任何日期,我使用此代码从该日期获取上个月的开始日期:

library(lubridate)

end_date <- '2021-10-30'
floor_date(as.Date(end_date) - months(1), 'month')
[1] "2021-09-01"

但是我找到了 return NA,因为日期的格式是 %Y-%m-31:

end_date <- '2021-10-31'
floor_date(as.Date(end_date) - months(1), 'month')
[1] NA

我们如何解释这个错误?谢谢

您将减去 floor 之后的月份:

end_date <- '2021-10-31'
floor_date(as.Date(end_date), 'month') - months(1)

[1] "2021-09-01"