改变很多变量的值
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).
这里绝对不需要循环命令。
想把很多变量的缺失值改成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).
这里绝对不需要循环命令。