DO IF框架中的多个OR条件评估为SYSMIS

时间:2019-03-28 16:24:40

标签: spss

我正在尝试创建一个新变量,如果该案例在一系列其他变量中的任何变量中选择了“ 1”,则为该案例生成“ 1”。但是,即使某些受访者在参考变量系列的变量中选择了“ 1”,尝试下面的代码也会将每种情况评估为SYSMIS。

我尝试将DO IF结构与两个ELSE IF一起使用,但并不高兴。

这是我到目前为止尝试过的(参考系列中的变量可以取“ 1”(期望值),“ 0”或“ 998”):

*ELA dichotomous*

DO IF (w1t_gr1.2=1 OR
           w1t_gr2.2=1 OR
           w1t_gr3.2=1 OR
           w1t_gr3.2=1 OR
           w1t_gr4.2=1 OR
           w1t_gr5.2=1 OR
           w1t_gr6.2=1 OR
           w1t_gr7.2=1 OR
           w1t_gr8.2=1).
COMPUTE rw1t_ela=1.
ELSE IF (w1t_gr1.2=0 OR
           w1t_gr2.2=0 OR
           w1t_gr3.2=0 OR
           w1t_gr3.2=0 OR
           w1t_gr4.2=0 OR
           w1t_gr5.2=0 OR
           w1t_gr6.2=0 OR
           w1t_gr7.2=0 OR
           w1t_gr8.2=0).
COMPUTE rw1t_ela=0.
ELSE IF (w1t_gr1.2=998 OR
           w1t_gr2.2=998 OR
           w1t_gr3.2=998 OR
           w1t_gr3.2=998 OR
           w1t_gr4.2=998 OR
           w1t_gr5.2=998 OR
           w1t_gr6.2=998 OR
           w1t_gr7.2=998 OR
           w1t_gr8.2=998).
COMPUTE rw1t_art=0.
ELSE.
COMPUTE rw1t_art=0.
END IF.
EXECUTE.

我希望对于在任何参考变量系列(例如,在w1t_gr3.2中)中选择了“ 1”的人来说,它都会给“ 1”,但是每种情况下的结果都是SYSMIS。

1 个答案:

答案 0 :(得分:1)

您发布的语法会创建两个变量,rw1t_ela实际上应像您描述的那样工作,而在八个原始变量中的任何一个包含0或1的所有情况下,第二个变量rw1t_art都应丢失。 如果您在语法中将rw1t_art替换为rw1t_ela,它应该可以正常工作。

话虽这么说,但是有一种更有效的方法可以满足您的需求: 仅当其他变量之一包含1时,以下代码才会在rw1t_ela中为您提供值1,在所有其他情况下,则为0:

compute rw1t_ela=any(1, w1t_gr1.2, w1t_gr2.2, w1t_gr3.2, w1t_gr4.2, 
                        w1t_gr5.2, w1t_gr6.2, w1t_gr7.2, w1t_gr8.2).