我想知道睡眠时间的平均值,但由于有时午夜之后,它似乎给了我以天为单位的时间平均值,我如何才能将其转换为 24 小时时间?
data <- read.table(text="
sleep_time wake_time
23:30:00 03:30:00
23:50:00 06:00:00
00:50:00 07:30:00
00:30:00 06:25:00
00:20:00 06:00:00
23:00:00 06:00:00
00:10:00 05:00:00
", header=T)
mean(times(data$wake_time))
# [1] 05:46:26
mean(times(data$sleep_time))
# [1] 10:18:34
wake <- times(data$wake_time)
sleep <- times(data$sleep_time)
times(mean(ifelse(sleep < wake, sleep + 1, sleep)))
# Time in days:
# [1] 1.000992
假设您正在使用 chron 包,那么
"times"
对象旨在表示日期/时间中的时间,而不是持续时间;但是,无论如何,我们都可以通过单独提取日期和时间部分并将它们粘贴在一起来获得效果。如果 tt
是问题中最后一行代码的结果,则确定天数并创建一个字符串,显示该结果以及减去它后剩下的内容。
days <- as.integer(tt)
paste(days, tt - days)
## [1] "1 00:01:26"