我得到以下数据集:
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来计算平均的wake_time:
> 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。如果睡眠时间早于唤醒时间,则可以在计算平均值之前“增加一天”。例如
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(ifelse(sleep < wake, sleep+1, sleep) * 24*60)
# [1] 47.60252
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句