Нам не нужно filter
, если целью является обновление исходного столбца. Используя case_when
, мы создаем логическое условие и вычитаем один год, когда дата больше today()
или возвращаем дату
library(dplyr)
df1 %>%
mutate(Fresh.email.date = ymd(Fresh.email.date),
Fresh.email.date = case_when(Fresh.email.date > today() ~
Fresh.email.date - years(1),
TRUE ~ Fresh.email.date))