I had one variable for Sex (1: Male; 2: Female) and one variable for
Self-Identified Gender Expression (1: Masculine; 2: Equally or Neither
Masculine Nor Feminine; 3: Feminine). I wanted to be able to compare
Masculine Males, et cetera in post hoc analyses.
Here is a template of the syntax that worked for me:
IF ((var1 = 1) & (var2 = 1)) newvar= 1.
EXECUTE.
IF ((var1 = 1) & (var2 = 2)) newvar= 2.
EXECUTE.
IF ((var1 = 1) & (var2 = 3)) newvar= 3.
EXECUTE.
IF ((var1 = 2) & (var2 = 1)) newvar= 4.
EXECUTE.
IF ((var1 = 2) & (var2 = 2)) newvar= 5.
EXECUTE.
IF ((var1 = 2) & (var2 = 3)) newvar= 6.
EXECUTE.
> Here is a template of the syntax that worked for me:
>
> IF ((var1 = 1) & (var2 = 1)) newvar= 1.
> EXECUTE.
> IF ((var1 = 1) & (var2 = 2)) newvar= 2.
> EXECUTE.
> IF ((var1 = 1) & (var2 = 3)) newvar= 3.
> EXECUTE.
> IF ((var1 = 2) & (var2 = 1)) newvar= 4.
> EXECUTE.
> IF ((var1 = 2) & (var2 = 2)) newvar= 5.
> EXECUTE.
> IF ((var1 = 2) & (var2 = 3)) newvar= 6.
> EXECUTE.
You don't need all those EXECUTE commands. One at the end, at
most, should be enough.
If you know that var1 is always 1 or 2 (or missing) and var2 is
always 1, 2, or 3 (or missing), this is equivalent:
COMPUTE newvar = (var1 - 1) * 3 + (var2 - 1) + 1.
EXECUTE.
If you don't know that:
DO IF ANY(var1, 1, 2) AND ANY(var2, 4, 5, 6).
COMPUTE newvar = (var1 - 1) * 3 + (var2 - 1) + 1.
END IF.
EXECUTE.
In each case, again, the EXECUTE is probably not needed.
--
Ben Pfaff
http://benpfaff.org