【问题标题】:SPSS: How to compute duration between two points of time (without full date information)SPSS:如何计算两个时间点之间的持续时间(没有完整日期信息)
【发布时间】:2016-05-02 08:39:05
【问题描述】:

在我的一项研究中,参与者给了我他们的时间

  1. 通常去睡觉(就寝时间)和
  2. 通常从床上起床(outofbed)(格式为 hh:mm)。

我现在想计算一个新变量来指示这两个时间点之间的持续时间。

我已经使用了 SPPS 的内置 TimeWizard 和函数 newVar = CTIME.HOURS(outofbed-bedtime)。对于 24.00 之前的就寝时间,这并没有给出正确的结果(因为例如 23.00-7.00 = 16 小时,而不是 8 小时)。

我彻底使用了我的 googlefoo 技能,但我找到的所有答案都使用了日期和时间的信息(例如 dd:mm:hh:mm)。我预计问题是SPSS在内部将所有日期时间信息保存为自公历开始以来的秒数。由于我缺乏日期信息,SPSS 没有可以计算的绝对值。至少,这是我目前的假设。

我希望你知道我的问题的解决方案。 干杯,德凯

【问题讨论】:

    标签: datetime spss


    【解决方案1】:

    好吧,您可以只计算24 - CTIME.HOURS(bedtime - outofbed) - 这可以解释为计算清醒时间,然后从 24 小时中减去。

    不过,您需要注意日程安排不同的人,例如上夜班的人。下面的逻辑应该可以解决这个问题,假设那些日程安排颠倒的人总是在一天的晚些时候起床而不是睡觉。

    DATA LIST FREE / outofbed bedtime (2TIME5).
    BEGIN DATA
    08:00 22:00
    06:00 21:00
    05:30 20:30
    21:45 07:00
    END DATA.
    
    DO IF outofbed < bedtime.
      COMPUTE sleepDur = 24 - CTIME.HOURS(bedtime-outofbed).
    ELSE.
      COMPUTE sleepDur = CTIME.HOURS(outofbed-bedtime).
    END IF.
    EXECUTE.
    

    【讨论】:

    • 非常感谢安迪!完美的解决方案。现在我知道了,我有点愚蠢,我自己想不出来。
    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2014-02-28
    • 1970-01-01
    • 2020-06-01
    相关资源
    最近更新 更多