Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算R-问题中就寝时间(hh:mm)的平均值和标准差是午夜之前/之后的时间_R_Time_Mean_Standard Deviation - Fatal编程技术网

计算R-问题中就寝时间(hh:mm)的平均值和标准差是午夜之前/之后的时间

计算R-问题中就寝时间(hh:mm)的平均值和标准差是午夜之前/之后的时间,r,time,mean,standard-deviation,R,Time,Mean,Standard Deviation,我得到了以下数据集: 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:

我得到了以下数据集:

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)
但当我对可变睡眠时间做同样的操作时,会发生以下情况:

> mean(times(data$sleep_time))
[1] 14:04:00
我猜结果是扭曲的,因为睡眠时间包含午夜前后的时间

但我如何解决这个问题呢

此外: 如何计算时间的标准差。我想用“平均唤醒时间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
库(chron)

你能给出预期的结果吗?也许这个答案会有所帮助?同样相关的还有:
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