给定一个包含日期和时间的 POSIXct 序列,我如何计算时间的平均值(不包括天数)?

Given a sequence of POSIXct which include date and time how do I calculate the mean of times only (excluding days)?

start =  as.POSIXct("2019-04-12 00:00:00", tz = "UTC")

end = as.POSIXct("2019-07-14 09:00:00", tz = "UTC")

datseq = data.frame(time_factor = seq(start,end, by = "1 hour"))

sampledat = sample(datseq$time_factor,30,replace = FALSE)

鉴于上述数据,如果我要计算平均值 mean(sampledat) 它将 return 小时和天的平均时间。但是我怎样才能只提取时间并只计算时间的平均值呢?

谢谢!

这是使用 lubridate 库的一些帮助的一种方法。

library(lubridate)

format(sampledat, '%T') %>%
  hms %>%
  period_to_seconds() %>%
  mean %>%
  as.POSIXct(origin = '1970-01-01', tz = 'UTC') %>%
  format('%T')

我们从 sampledat 中提取时间部分,将其转换为周期对象,将其转换为秒数,取 mean 并以“HMS”格式显示。