Если мы конвертируем time
в правильный тип даты и времени, мы можем просто добавить секунды. Т.е.:
d1 <- structure(list(time = c("12:21", "12:22", "12:45"),
MIN = c(7, 41, 147)),
class = "data.frame", row.names = c(943L, 946L, 947L))
Преобразование столбца time
в POSIX с использованием strptime
:
d1$time <- strptime(d1$time, format="%H:%M")
Добавление секунд:
d1$time1 <- d1$time + d1$MIN * 60
d1
сейчас :
d1
time MIN time1
943 2020-03-16 12:21:00 7 2020-03-16 12:28:00
946 2020-03-16 12:22:00 41 2020-03-16 13:03:00
947 2020-03-16 12:45:00 147 2020-03-16 15:12:00
Если мы хотим показать только часть времени time1
(или time2), мы можем использовать format(df$time1, format = "%H:%M")
, но мы должны делать это только в целях печати и оставить столбец внутри как datetime (например: что произойдет, если мы добавим 23 часа?)