我有一个如下所示的数据集:
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;
答案 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