改变很多变量的值

Changing values of a lot of variables

想把很多变量的缺失值改成0.I这段代码写过(变量比较多,只是举例):

RECODE variable1 ($SYSMIS = 0).
EXECUTE.

RECODE variable2 ($SYSMIS = 0).
EXECUTE.

RECODE variable3 ($SYSMIS = 0).
EXECUTE.

有没有更简单的方法来做同样的事情?比如在编程中学习一段时间或类似的东西

非常感谢

如果所需的目标变量在您的活动数据集中连续排列,您可以使用 keyword TO

例如:

RECODE V1 to V3 (SYSMIS=0).

请注意您在 RECODE 命令中错误使用了关键字“SYSMIS”,并在提供的示例代码中进行了更正。

否则您将不得不求助于 DO REPEAT or DEFINE/ENDDEFINE

除了 Jignesh 的回复外,如果所有变量都是数字,您可以使用 ALL。

RECODE ALL(SYSMIS=0).  

DEFINE !ENDDEFINE 有点矫枉过正,DO REPEAT 在 RECODE 命令中明确列出变量不会给你带来任何好处。

您的第一步应该是将所有命令合并为一个 - 无论变量的顺序如何,都可以这样做 - 只需在命令中明确提及所有变量名称(如 david 所述):

RECODE variable1 variable2 variable3 variable4 .... (sysmis=0).

这将节省大量代码。 现在,正如 Jignesh 提到的那样 - 对于连续顺序的变量,您可以使用 to:

RECODE variable1 to variable3 (sysmis=0).

或者还有一个包含两组连续变量和另外两个单独变量的示例:

RECODE variable1 TO variable23 var1 TO var7 AnotheVar3 AnotheVar12 (sysmis=0).

这里绝对不需要循环命令。