【问题标题】:How to calculate number of hours of sleep for each record如何计算每条记录的睡眠小时数
【发布时间】:2015-02-23 23:16:01
【问题描述】:

我为每个孩子设置了一个数据集,每个孩子上床睡觉的时间和早上醒来的时间。我要计算睡眠小时数

以下只是一个示例数据:

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 有不同的时间组合:他们早上 (AM) 上床睡觉,第二天下午晚些时候 (PM) 醒来。

如果您有任何问题,请告诉我?

【问题讨论】:

  • 到目前为止您尝试过什么?使用 StackOverflow,您应该首先尝试自己解决问题,并展示您尝试过的内容并解释您遇到的问题。
  • 转换为 24 小时制并减去。但说真的,如果你不花时间正确解释你想要完成的事情并给出更好的例子,这个问题就会被关闭。并且如上所述,展示您已经尝试或目前正在努力解决的问题。
  • 我想用SAS语言

标签: sas


【解决方案1】:

您需要做的就是根据孩子们上床睡觉和起床的时间创建一个名为 SleepHour 的新列。

使用你的数据,然后SleepHour = Time2 - Time1。假设time2time1 都是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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-27
    • 2013-12-11
    • 2022-01-12
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 2021-02-16
    相关资源
    最近更新 更多