Вы можете преобразовать в POSIXct
и вычесть 10
dates <- c("2018-12-23 00:02:00", "2018-12-24 00:00:00", "2018-12-25 00:04:00")
as.character(as.POSIXct(dates) - 10)
# [1] "2018-12-23 00:01:50" "2018-12-23 23:59:50" "2018-12-25 00:03:50"
Из ?DateTimeClasses
Класс "POSIXct" представляет (подписанное) количество секунд с моментаначало 1970 года (в часовом поясе UTC) в виде числового вектора.
Если вам не нужны символы в конце, просто сделайте
as.POSIXct(dates) - 10
Как указал @thelatemail, мы могли бы также сделать
as.POSIXct(dates) - as.difftime(10, units="secs")
Возможные единицы: "auto", "secs", "mins", "hours", "days", "weeks"
, см. ?difftime
.