我正在使用“变换”>“计算变量”将两个变量(B,C)或在一起。我的两个变量的值可以为1、2或3。如果B或C为1,则我想计算第三个变量为1,否则为零。可行
A = (B=1) | (C=1)
但是,如果缺少B或C,我就会遇到麻烦。我想要的是
if B and C exist and B or C equals 1, A = 1
if B and C exist and neither equals 1, A = 0
if B is missing and C is missing, A = missing
if B or C is 1 and the other value is missing, A = 1
if B or C is not 1 and the other value is missing, A = 0
我可以使用“变换”>“计算变量”来完成此操作,还是需要另一种方法?
答案 0 :(得分:2)
这是一个班轮:
compute A=max((B=1), (C=1)).
exe.
您可以通过转换菜单执行此操作,但是我建议您习惯使用语法(的强大功能)。
答案 1 :(得分:1)
您可以在语法窗口中编写此代码。 If variable exists
被翻译为if ~miss(variable)
if ~miss(B) and ~miss(C) and any(1,B,C) A=1.
if ~miss(B) and ~miss(C) and ~any(1,B,C) A=0.
if miss(B) and miss(C) A=$sysmis.
if miss(B) or miss(C) and any(1,B,C) A=1.
if miss(B) or miss(C) and ~any(1,B,C) A=0.
EXECUTE.
或者,如果我正确理解您要执行的操作:
Compute A=0.
if any(1,B,C) A=1.
if miss(A) and miss(B) A=$sysmis.
EXECUTE.