如何检查多列中的值是否在某个数字之下?

时间:2017-03-17 17:06:23

标签: sas

我有一个如下所示的数据集:

ID  C1  C2  C3  C4....C50
A   23  0   50  0......4
B   10  0   0   0......1

目标是检查是否有任何列:c1-c50的每个ID的值都小于20。我使用了这段代码,但它没有给我准确的标志变量。

data want;
set have;
array c c1-c50;
min_num=0;
do i=1 to 50;
if c[i] < 20 then flag=0; else flag=1;
end;
drop i;
run;

1 个答案:

答案 0 :(得分:1)

你需要放弃else

data want;
  set have;
  array c c1-c50;
  min_num=0;
  flag = 0;
  do i=1 to 50;
    if c[i] ge 20 then flag=1;
  end;
  drop i;
run;

那将从0开始,然后如果它们中的任何一个是20或更高,则将其设置为1.如果缺少可能性并且您不希望将其计为低于20,请单独检查,作为{ {1}}是真的(缺少的是最小的数字,所以少于一切)。

当然,您可以使用.<20 ...

max