计算 if 循环 SPSS

Compute if loop SPSS

最终,我想将分数从 0 更改为 1,将分数从 1 更改为 2,将分数从 2 更改为 3。我认为一种方法是使用 +1,但我意识到我也可以使用if then系列更复杂。

这是我目前所做的: 我使用现有变量 (x) 使用 SPSS 语法创建一个新变量 (y=x+1)。我只想对值 >=0 的变量执行此操作(这是我排除缺少数据的单元格的方法;x 的范围是 0-2)。

我可以创建 x+1,但它会覆盖现有变量。

DO REPEAT x =var_1 TO var_86.
if (x>=0) x=(x+1).
end repeat.
exe.

我尝试了这个修改,但它不起作用:

DO REPEAT x = var_1 TO var_86 / y = var_1a TO var_86a.
IF  (x >= 0) y=x +1.
END REPEAT.
EXE.

错误信息是:

DO REPEAT The form VARX TO VARY to refer to a range of variables has been used incorrectly. When using VARX TO VARY to create new variables, X must be an integer less than or equal to the integer Y. (Can't use A3 TO A1.)

我尝试了许多其他配置,包括向量和循环,但尚未弄清楚如何在不覆盖现有变量的情况下跨变量范围进行此计算。预先感谢您的任何建议。

您收到的消息是因为 SPSS 不理解表格 var_1a TO var_86a
要使 x to y 形式起作用,数字必须位于名称的末尾,因此例如 varA_1 to varA_86 应该起作用。
当你在做的时候,这里有一个简单的方法来完成你的任务:

recode var_1 TO var_86 (0=1)(1=2)(2=3) into varA_1 TO varA_86.