给定一个包含日期和时间的 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”格式显示。
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”格式显示。