检查日期是否在一年内的最佳方法是什么?

What's the best way to check if a date is within a year?

我觉得这应该很简单,但我在这里很难找到我想要的东西。

我只想检查日期是否在一年内。我认为这样的事情会起作用,但它不起作用:

filter(mdy(COV_EFF_DTE) %within% YEAR_SOLD)

...其中 COV_EFF_DTE 是 mdy 格式的日期(例如 1/15/2015),YEAR_SOLD 只是表示年份的整数(例如 2015)。

我有一些东西可以完成这项工作,但它真的很难看,我想简化代码。这是我目前的解决方案...

filter(mdy(COV_EFF_DTE) %within% interval(mdy(paste("1/1/",YEAR_SOLD)),mdy(paste("12/31/",YEAR_SOLD))))

就像我说的,这行得通,但必须有更好的东西。有没有一种简单的方法可以将年份转换为从 1/1/YYYY 到 12/31/YYYY 的间隔?

我使用包 lubridate 中的 year() 从日期获取数字年份值。

library(lubridate)

year <- 1998L

my_date <- ymd(19980301)

year(my_date) %in% year
 grepl(as.character(YEAR_SOLD),COV_EFF_DTE)

试试这个:year(as.Date(COV_EFF_DTE, format = '%m/%d/%Y')) 它将 return 年份,您可以相应地过滤数据。