我试图用hr:min:sec格式确定数据帧列中的平均时间,但是没有运气。非常感谢帮助。 数据样本如下:
Col_Time
03:08:20
03:11:30
03:22:18
03:27:39
我的输出应该是一条记录,它是输入列格式相同的所有数字的平均值。
由于
答案 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')