在SPSS语法中,我试图创建一个过滤器,指示如果所有变量都为1,它将返回一个指示1的摘要变量。
我在 SPSS 语法中尝试了以下方法:
if (var1 TO var25 = 1 AND var29 TO var54 = 1) filtervar = 1.
给了我以下错误:
2937 如果表达式包含无效或不恰当的使用 TO 关键字。 TO 关键字可用于 MEAN、SUM 等 类似的函数代替输入单个变量名称,但是 它可能无法在其他情况下使用。
我知道很长的路要写:
if (var1 = 1 & var2 = 1 & var3 =1 ...) filtervar=1.
但这会花费太长的时间(我有 74 个变量!我也希望脚本简洁)。
有什么推荐吗?
如果您检查的所有变量都是二分的(如 0 或 1),那么一种方法是这样的:
compute filtervar=1.
if any(0, var1 TO var25, var29 TO var54) filtervar=0.
(也
compute filtervar=1 - any(0, var1 TO var25, var29 TO var54).
)
现在如果还有其他可能的值,那么我们需要更复杂的东西。一种方法是循环变量:
compute filtervar=1.
do repeat vr=var1 TO var25 var29 TO var54.
if vr<>1 filtervar=0.
end repeat.
这两种可能性都不会处理缺失值 - 如果确实有缺失值,您应该定义在其中一个变量中存在缺失值的情况下
filtervar
应该发生什么,我们可以在语法中处理它。