【发布时间】:2021-08-03 10:33:58
【问题描述】:
在一份问卷中,我询问了人们通常每晚睡多长时间。现在回复应该是 h.mm 格式,但不小心被设置为 h。这就是为什么一些参与者以分钟为单位给出他们的睡眠时间,或者简单地写“830”8小时30分钟。现在我想纠正这两种变化并首先尝试:
RECODE Sleep (1=1) (2=2) (3=3) (4=4) (5=5) (6=6) (7=7) (8=8) (9=9) (10=10)(11=11)(12=12)(13=13)(14=14)(801 thru 899 = 8.5) (701 thru 799 = 7.5)(200 thru 600 = (Sleep/60))
INTO Sleep_rek.
RECODE Sleep_rek(LOWEST thru 4.5 = 0) (5, 6= 1) (6.5 thru 7 = 2) (7.5 thru HIGHEST=3)
INTO PSQI_K3_SleepDuration.
Execute.
由于它不起作用并且我认为 Recode 可能无法做到这一点,所以我尝试了这个:
RECODE Sleep (1=1) (2=2) (3=3) (4=4) (5=5) (6=6) (7=7) (8=8) (9=9) (10=10)(11=11)(12=12)(13=13)(14=14)(801 thru 899 = 8.5) (701 thru 799 = 7.5)
INTO Sleep_rek.
IF (Sleep = (300 thru 600) & Sleep_rek = sysmis) Sleep_rek = (Sleep/60).
RECODE Sleep_rek(LOWEST thru 4.5 = 0) (5, 6= 1) (6.5 thru 7 = 2) (7.5 thru HIGHEST=3)
INTO PSQI_K3_SleepDuration.
Execute.
但是这也引发了错误:
代码不完整,检查是否缺少操作符,无效操作符, 括号不匹配或字符串太长。
最终计算了 PSQI_K3_SleepDuration 变量,但任何具有 300 到 600 值的人仍然是缺失值。
谁能告诉我怎么放它才能工作?
【问题讨论】: