我正在尝试创建一个新变量,如果该案例在一系列其他变量中的任何变量中选择了“ 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。
答案 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).