Часы без минут можно рассчитать как:
s <- c(1900, 1845, 930, 930, 455) # input
s %/% 100
## [1] 19 18 9 9 4
или количество часов (с использованием дробных часов в минутах):
s %/% 100 + (s %% 100) / 60
## [1] 19.000000 18.750000 9.500000 9.500000 4.916667
хрон хрон
Другой подход заключается в преобразовании s
в объект хрон "times"
, из которого извлекаются часы или часы и минуты.Последняя альтернатива ниже использует тот факт, что "times"
объекты хранятся как доли дня.
library(chron)
tt <- times(sub("(..)$", ":\\1:00", s)); tt
## [1] 19:00:00 18:45:00 09:30:00 09:30:00 04:55:00
# alternative
times((s %/% 100) / 24 + (s %% 100) / (24 * 60))
## [1] 19:00:00 18:45:00 09:30:00 09:30:00 04:55:00
hours(tt)
## [1] 19 18 9 9 4
minutes(tt)
## [1] 0 45 30 30 55
hours(tt) + minutes(tt) / 60
## [1] 19.000000 18.750000 9.500000 9.500000 4.916667
24 * as.numeric(tt)
## [1] 19.000000 18.750000 9.500000 9.500000 4.916667