使用 lubridate 包从当天查找特定年前的第一天

Find the first day of specific years ago from current day using lubridate package

我可以使用下面的代码从今天找到几年前的日期:

library(lubridate)
today <- format(Sys.Date())
pre_3years <- ymd(today) - years(3)
pre_3years 

输出:

[1] "2018-12-27"

事实上,我希望得到pre_3year的第一天,对于这个例子来说是2018-01-01,我怎么能在R中使用lubridate包呢?谢谢。

您可以使用 lubridate 中的 floor_date 来获取一年中的第一天。

library(lubridate)
first_day_of_n_prev <- function(x) {
  floor_date(Sys.Date() - years(x), 'year')  
}

first_day_of_n_prev(3)
#[1] "2018-01-01"

first_day_of_n_prev(2)
#[1] "2019-01-01"