Существует, конечно, lubridate
решение для этого:
library(lubridate)
date <- "2009-10-01"
ymd(date) - 5
# [1] "2009-09-26"
совпадает с
ymd(date) - days(5)
# [1] "2009-09-26"
Другие форматы времени могут быть:
ymd(date) - months(5)
# [1] "2009-05-01"
ymd(date) - years(5)
# [1] "2004-10-01"
ymd(date) - years(1) - months(2) - days(3)
# [1] "2008-07-29"