我需要计算两个日期范围之间重叠的天数。
我有大约 200 行数据。每行都有一个
enr_dte
的日期值。我创建了一个名为 end_dte
的变量,它是 enr_dte + days(180)
.
我试过为此使用
difftime
。只要时间间隔不完全跨越夏季或不包括夏季之后的时间,我当前的代码就会给我正确答案。如果是这样,那么我默认重叠 180 天。
我愿意使用其他包/功能来实现这一目标。
#This variable is used to change the end of the winter season depending on the end_dte
OMset <- OMset %>%
mutate(winter_end = case_when(
ymd(end_dte) >= ymd("2022-10-01") ~ ymd("2023-05-31"),
ymd(end_dte) < ymd("2022-10-01") ~ ymd("2022-05-31")
))
OMset <- OMset %>%
mutate(overlap_days = difftime(pmin(ymd(end_dte), ymd(winter_end)), pmax(ymd(enr_dte), ymd("2021-10-01")), units = "days")) %>%
mutate(overlap_days = as.numeric(overlap_days))