检查日期是否在一年内的最佳方法是什么?
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 年份,您可以相应地过滤数据。
我觉得这应该很简单,但我在这里很难找到我想要的东西。
我只想检查日期是否在一年内。我认为这样的事情会起作用,但它不起作用:
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 年份,您可以相应地过滤数据。