我试图从变量“ A”,“ B”和“ C”创建一个新变量“ X”。 这是我正在使用的代码。
我仅获得第一个选项“ VAS_USAGE = 1”,其他选项丢失。
我想要的是让VAS_USAGE具有1到6个值。
我究竟做错了什么?
```
compute VAS_USAGE=0.
DO IF ((VAS1=1) AND (VAS2=1) AND (VAS3=1)).
COMPUTE VAS_USAGE=1.
ELSE IF ((VAS1=1) AND (VAS2=1) AND (VAS3=0)).
COMPUTE VAS_USAGE=2.
ELSE IF ((VAS1=1) AND (VAS2=0) AND (VAS3=1)).
COMPUTE VAS_USAGE=3.
ELSE IF ((VAS1=1) AND (VAS2=0) AND (VAS3=0)).
COMPUTE VAS_USAGE=4.
ELSE IF ((VAS1=0) AND (VAS2=0) AND (VAS3=1)).
COMPUTE VAS_USAGE=5.
ELSE IF ((VAS1=0) AND (VAS2=0) AND (VAS3=0)).
COMPUTE VAS_USAGE=6.
END IF.
EXECUTE.```
这是嵌套表的外观。这就是我期望得到的。
这就是我得到的。
1.00 = 63
答案 0 :(得分:1)
如@ user45392所建议,我将检查答案“是”和“否”是否确实编码为1和0。 无论如何,我都建议避免使用复杂的“如果”方案,该方案可能容易出错并且难以调试。例如,您可以这样创建VAS_USAGE:
compute VAS_USAGE = 100*VAS1 + 10*VAS2 + VAS3.
或者,如果您要坚持在帖子中提供的特定值,请添加以下内容:
recode VAS_USAGE (111=1)(110=2)(101=3)(100=4)(1=5)(0=6).
此外,如果您只想从1到8的简单索引,可以执行以下操作:
compute VAS_USAGE = 4*VAS1 + 2*VAS2 + VAS3 + 1.