如何计算每条记录的睡眠小时数
How to calculate number of hours of sleep for each record
我有每个孩子的数据集,每个孩子上床睡觉的时间以及他们早上醒来的时间。我要计算睡眠小时数
下面只是一个示例数据:
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)
如您所见,我有不同的时间组合 ex:they 清晨 (AM) 上床睡觉,他们在第二天下午晚些时候 (PM) 醒来。
如果您有任何问题,请告诉我?
您需要做的就是根据孩子上床睡觉和醒来的时间创建一个名为 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;
我有每个孩子的数据集,每个孩子上床睡觉的时间以及他们早上醒来的时间。我要计算睡眠小时数
下面只是一个示例数据:
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)
如您所见,我有不同的时间组合 ex:they 清晨 (AM) 上床睡觉,他们在第二天下午晚些时候 (PM) 醒来。
如果您有任何问题,请告诉我?
您需要做的就是根据孩子上床睡觉和醒来的时间创建一个名为 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;