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;