我想将很多变量的缺失值更改为0.我已经编写了这段代码(还有很多变量,它只是一个例子):
RECODE variable1 ($SYSMIS = 0).
EXECUTE.
RECODE variable2 ($SYSMIS = 0).
EXECUTE.
RECODE variable3 ($SYSMIS = 0).
EXECUTE.
是否有一种更简单的方法可以做同样的事情?像编程或类似的一段时间
非常感谢你
答案 0 :(得分:1)
如果所需的目标变量在您的活动数据集中按连续顺序排列,则可以使用keyword TO。
例如:
RECODE V1 to V3 (SYSMIS=0).
请注意您错误地使用了关键字" SYSMIS
"在RECODE
命令和已提供的示例代码中已更正。
否则,您将不得不使用DO REPEAT或DEFINE/ENDDEFINE。
答案 1 :(得分:1)
除了Jignesh的回复,如果所有变量都是数字,你可以使用ALL。
RECODE ALL(SYSMIS=0).
DEFINE!ENDDEFINE是Overkill,DO REPEAT并没有为你在RECODE命令中明确列出变量而购买任何东西。
答案 2 :(得分:1)
您的第一步应该是将所有命令合并为一个 - 无论变量的顺序如何,都可以这样做 - 只需明确提及命令中的所有变量名称(如提到的大卫):
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).
这里绝对不需要循环命令。