SAS条件声明

You*_*bat 2 sas

这个:

IF VAR1 ne VAR2 ne VAR3 ne VAR4;   
Run Code Online (Sandbox Code Playgroud)

我希望这个条件检查是否:

  • VAR1不等于VAR2,VAR3,VAR4
  • VAR2不等于VAR1,VAR3,VAR4
  • VAR3不等于VAR1,VAR2,VAR4
  • VAR4不等于VAR2,VAR3,VAR1

这可能吗?

Joe*_*Joe 5

我认为对于四个变量情况,六个AN的IF可能是最好的.但是,如果你想这样做无限制,阵列解决方案是显而易见的; 这里的工作比需要的多,但工作量少于10个变量 - > 45个ifs.

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;
Run Code Online (Sandbox Code Playgroud)

这与6 if(测试1 vs 2,3,4,测试2 vs 3,4,测试3 vs 4)相同,但是采用数组/循环形式.