这个:
IF VAR1 ne VAR2 ne VAR3 ne VAR4;
我希望这个条件检查是否:
- VAR1 不等于 VAR2、VAR3、VAR4
- VAR2 不等于 VAR1、VAR3、VAR4
- VAR3 不等于 VAR1、VAR2、VAR4
- VAR4 不等于 VAR2、VAR3、VAR1
这可能吗?
最佳答案
我认为对于四个变量的情况,六个与 IF 可能是最好的。然而,如果你想无限制地做到这一点,数组解决方案是显而易见的;这里的工作量比需要的多,但比 10 个变量 -> 45 个 if 少。
data want;
set have;
match=0;
array vars var:;
do _t = 1 to dim(vars)-1;
do _u = _t+1 to dim(vars);
if vars[_t] = vars[_u] then match=1;
end;
if match=1 then leave;
end;
run;
这与 6 个 if 的作用相同(测试 1 vs 2,3,4,测试 2 vs 3,4,测试 3 vs 4),但采用数组/循环形式。
关于SAS 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893714/