我为每个孩子准备了一个数据集,当每个孩子上床睡觉和早上醒来时。我想计算睡眠时数
以下是一个示例数据:
id time1(kids go bed) time2(kids wake up time)
101 12:00(am) 5:00(pm)
102 3:00(am) 9:30(am)
103 7:00(pm) 6:00(am)
104 4:15(am) 2:00(pm)
你可以看到我有不同的时间组合,他们在清晨(上午)睡觉,然后在第二天下午(PM)醒来。
如果您有任何疑问,请告诉我?
答案 0 :(得分:2)
您需要做的就是根据孩子上床睡觉和醒来时创建一个名为SleepHour
的新列。
使用您的数据,然后SleepHour = Time2 - Time1
。假设time2
和time1
都是datetime
格式。
data WANT;
set HAVE;
SleepHour = (Time2 - Time1)/3600; /* seconds to hours */
run;
但我猜原始数据可能只包含没有time
部分的date
部分。因此,您需要阐明如何计算no. of hours
。
好吧,让我们假设孩子每天24小时不会睡觉。然后,您需要if
条件来计算no of hours
。
data WANT;
set HAVE;
if hour(time2) ge hour(time1) then SleepHour = (Time2 - Time1)/3600;
else SleepHour = (Time2 + 24*3600 - Time1)/3600;
run;