Sas 如何检查多列中的值是否低于某个数字?

Sas 如何检查多列中的值是否低于某个数字?,sas,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; en

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

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;
需要数据;
集有;
c1-c50阵列;
最小数量=0;
i=1到50;
如果c[i]<20,则标志=0;else标志=1;
终止
第一滴;
跑

你需要抛弃
否则

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以下,请单独检查,如
data want;
  set have;
  flag = (max(of c1-c50) < 20) = 0;
run;