仅完成初始if语句变量计算 - 正在忽略ELSE部分。有人可以解释原因吗?非常感谢。
DATASET ACTIVATE DataSet1. DO IF ((A1_SCN2_PR1_UE = 0 & A1_SCN3_PR1_UE = 0 & A1_SCN4_PR1_UE = 0 & A1_SCN5_PR1_UE = 0) | (A2_SCN2_PR1_UE = 0 & A2_SCN3_PR1_UE = 0 & A2_SCN4_PR1_UE = 0 & A2_SCN5_PR1_UE = 0) | (A3_SCN2_PR1_UE = 0 & A3_SCN3_PR1_UE = 0 & A3_SCN4_PR1_UE = 0 & A3_SCN5_PR1_UE = 0)). Compute FM_zero = 1. ELSE. Compute FM_zero = 0. End IF. EXECUTE.
答案 0 :(得分:1)
不确定为什么你的ELSE没有被计算,但是我建议你放弃DO IF并改为:
compute FM_zero =
((A1_SCN2_PR1_UE = 0 & A1_SCN3_PR1_UE = 0 & A1_SCN4_PR1_UE = 0 & A1_SCN5_PR1_UE = 0) |
(A2_SCN2_PR1_UE = 0 & A2_SCN3_PR1_UE = 0 & A2_SCN4_PR1_UE = 0 & A2_SCN5_PR1_UE = 0) |
(A3_SCN2_PR1_UE = 0 & A3_SCN3_PR1_UE = 0 & A3_SCN4_PR1_UE = 0 & A3_SCN5_PR1_UE = 0)).
这将在所有真实案例中放置1,在所有错误案例中放置0。
答案 1 :(得分:1)
SPSS使用三值逻辑:True,False或者不知道(sysmis)。 从语法参考手册... DO IF或任何ELSE IF上的逻辑表达式返回的缺失值会导致控件传递给 那时的END IF命令。
所以一般来说,你应该把sysmis测试放在你的DO IF中,然后使用适当的ELSE IF / ELSE。