Как перевести количество часов во время? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть файл данных, в котором мне нужно работать со столбцами данных по времени, а именно часам и минутам, но сохраненные данные - это 1900, что соответствует 19:00, 1845 - 18: 45, но есть также 930 для 930 и 455.на 4h5, так что теперь я не знаю, как обрабатывать ту же форму, если я просто хочу разделить количество часов.Как мне это сделать?

1 Ответ

0 голосов
/ 12 октября 2018

Часы без минут можно рассчитать как:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...