Среднее время в столбце в формате чч: мин: сек

Я пытаюсь определить среднее время в столбце фрейма данных в формате чч: мин: сек, используя R. Но не повезло. Помощь очень ценится. Образец данных, как показано ниже:

Col_Time
03:08:20
03:11:30
03:22:18
03:27:39

Мой вывод должен быть одной записью, которая является средним числом всех чисел в том же формате, что и входной столбец.

Спасибо

3 ответа

Решение

Ты можешь использовать chron библиотека. В частности, times функция. Обратите внимание, что times внутренне представляет время в виде числового значения (десятичные дни).

Col_Time = c('03:08:20','03:11:30','03:22:18','03:27:39')
library(chron)
mean(times(Col_Time))
#[1] 03:17:27

Один путь с lubridate пакет. Мы конвертируем время в секунды, берем среднее значение, а затем снова конвертируем эти секунды во время.

Col_Time = c('03:08:20','03:11:30','03:22:18','03:27:39')
library(lubridate)
seconds_to_period(mean(period_to_seconds(hms(Col_Time))))
#[1] "3H 17M 26.75S"

Мы можем сделать это без использования каких-либо внешних пакетов

format(mean(strptime(Col_Time, "%H:%M:%S")), "%H:%M:%S")
#[1] "03:17:26"

данные

Col_Time = c('03:08:20','03:11:30','03:22:18','03:27:39')
Другие вопросы по тегам