gpt4 book ai didi

r - 计算就寝时间的平均值和标准差 (hh :mm) in R - problem are times before/after midnight

转载 作者:行者123 更新时间:2023-12-04 08:17:49 24 4
gpt4 key购买 nike

我得到了以下数据集:

data <- read.table(text="
wake_time sleep_time
08:38:00 23:05:00
09:30:00 00:50:00
06:45:00 22:15:00
07:27:00 23:34:00
09:00:00 23:00:00
09:05:00 00:10:00
06:40:00 23:28:00
10:00:00 23:30:00
08:10:00 00:10:00
08:07:00 00:38:00", header=T)
我使用 chron-package 来计算平均唤醒时间:
> mean(times(data$wake_time))
[1] 08:20:12
但是当我对变量 sleep_time 做同样的事情时,就会发生这种情况:
> mean(times(data$sleep_time))
[1] 14:04:00
我猜结果是扭曲的,因为 sleep_time 包含午夜前后的时间。
但是我该如何解决这个问题呢?
此外:
如何计算时间的标准差。例如,我想像“平均唤醒时间 08:20 ± 44 分钟”一样使用它。
提前致谢,我感谢任何形式的帮助。
干杯

最佳答案

时间值存储为数字 0-1,代表一天的一小部分。如果 sleep 时间早于醒来时间,则可以在取平均值之前“加一天”。例如

library(chron)
wake <- times(data$wake_time)
sleep <- times(data$sleep_time)
times(mean(ifelse(sleep < wake, sleep+1, sleep)))
# [1] 23:40:00
而且由于这些值是一天的一部分,如果您想要以分钟为单位的 sd,您将采用部分日期值并转换为分钟
sd(ifelse(sleep < wake, sleep+1, sleep) * 24*60)
# [1] 47.60252

关于r - 计算就寝时间的平均值和标准差 (hh :mm) in R - problem are times before/after midnight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65637024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com