列中的平均时间,以hr:min:sec格式表示

时间:2017-02-16 17:43:10

标签: r

我试图用hr:min:sec格式确定数据帧列中的平均时间,但是没有运气。非常感谢帮助。 数据样本如下:

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

我的输出应该是一条记录,它是输入列格式相同的所有数字的平均值。

由于

3 个答案:

答案 0 :(得分:7)

您可以使用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

答案 1 :(得分:2)

使用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"

答案 2 :(得分:0)

我们可以在不使用任何外部包的情况下执行此操作

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')