【发布时间】:2017-01-09 16:41:58
【问题描述】:
我需要基于 3 个变量创建一个新变量。
如果某人针对 3 个变量中的任何 1 个被编码为 1,则他们在新变量中被编码为 1
如果它们不在任何变量上编码 1,而是在 3 个变量中的任何一个上编码为 2,则它们在新变量中被编码为 2
其他的都编码为 99
在语法上,我写成这样:
IF (Keep_Any=1 OR Find_Any=1 OR Improve_Any=1) Keep_Find_Improve=1.
IF ((Keep_Find_Improve~= 1) & (Keep_Any=2 | Find_Any=2 | Improve_Any=2)) Keep_Find_Improve=2.
IF (Keep_Find_Improve~=1 & Keep_Find_Improve~=2) Keep_Find_Improve=99.
EXECUTE.
但是,第一部分正确识别编码为 1 的案例,但其余语法不起作用。尽管使用了一些在其他变量上使用完全相同逻辑的语法,但这是在:
COMPUTE Keep_Any= Q9a_recoded = 1 | Q9b_recoded = 1 | Q9c_recoded = 1.
EXECUTE.
IF (Q9A_recoded=1 OR Q9B_recoded=1 OR Q9C_recoded=1) Keep_Any=1.
IF ((Keep_Any~=1) & (Q9A_recoded= 2 OR Q9B_recoded=2 OR Q9C_recoded=2)) Keep_Any=2.
IF (Keep_Any~=1 & Keep_Any~=2) Keep_Any=99.
EXECUTE.
有没有人知道为什么会发生这种情况以及如何解决它?
【问题讨论】:
-
会不会是失踪了?确保您的变量没有丢失。如果它们打算丢失,请确保它们在您的代码中正确说明?