формат - отображать данные дробного времени в формате чч: мм: сс R - PullRequest
0 голосов
/ 20 ноября 2018

Ниже приведены данные о рабочих часах, которые мне нужно сравнить - запуск и остановка с указанием даты и времени.Сначала я извлекаю временную часть каждой из них как переменные start и stop, а затем использую пакет chron, чтобы преобразовать их из факторных данных в нечто, что я могу легче сравнить.

require(chron)
eg_data3 <- data.frame(
id = c('42', '42', '42', '42', '42'),
time_in =  as.factor(c('11/5/2017 13:52', '11/4/2017 14:25', '11/5/2017 15:30', '11/5/2017 17:10', '11/6/2017 18:20')),
time_out = as.factor(c('11/5/2017 13:59', '11/4/2017 14:59', '11/5/2017 16:00', '11/5/2017 17:45', '11/6/2017 18:50')))
eg_data3$start_time <- substring(strptime(eg_data3$time_in, format = "%m/%d/%Y %H:%M"),12,19)
eg_data3$end_time <- substring(strptime(eg_data3$time_out, format = "%m/%d/%Y %H:%M"),12,19)
eg_data3$end_time <- chron(times = eg_data3$end_time)
eg_data3$start_time <- chron(times = eg_data3$start_time)

Затем я создаю другую переменную, которая сравнивает разницу между временем остановки 1 и временем начала 2, т.е. временем остановки IE в строке 1, со временем начала в строке 2, чтобы увидеть разрыв между ними.

require(dplyr)
eg_data3 <- eg_data3 %>% group_by(id) %>% mutate(diff_outX0_inX1 = start_time - lag(end_time))

Когда я это делаю, переменная форматируется как десятичная дробь.Я не могу на всю жизнь заставить его отображаться как чч: мм: сс.Я попытался указать out.format в формате чч: мм: сс в хрон, изменить время_вн / время_изображения на числовой и символьный до и после извлечения и применить хрон (раз), изменить формат переменной diff_ после и т. Д.

Что кажется очень простым вопросом -

Как получить переменную сравнения результатов (diff_outX0_inX1) для отображения в виде времени, чч: мм или чч: мм: сс ??Я знаю формулу для преобразования дробных дней в минуты в Excel, но я бы предпочел не записывать двухшаговую функцию, я предполагаю, что это простая проблема форматирования.

Любая помощь приветствуется.

РЕДАКТИРОВАТЬ - помечено как дубликат ... ОК.Я спросил, есть ли способ сделать это, не связанный с написанием функции.Ответ, который был связан, включает функцию.Первый комментарий дал простой ответ.Я могу воспроизвести ответ в комментарии, я не смог воспроизвести саму функцию, но не настолько полезную.Я также добавил другое решение, которое не требует dplyr.То, где я смотрел онлайн, не показывало мне ничего более простого, чем «просто отформатировать результат с помощью chron».

...