我在SAS
中有一个名为n
的{{1}}字段的表格。每个字段都可以是“OK”或“KO”。如果每个检查都是“OK”,我想生成一个“OK”的字段,如果其中一个检查是“KO”,我想生成“KO”。我该怎么办?
提前致谢
答案 0 :(得分:3)
使用WHICHC()函数以及布尔检查来查看它是否大于零。如果您有命名约定,则不需要声明数组。
Flag = whichc('KO', of check1-checkN) >0;
编辑:
If WHICHC('KO', of check1-checkN)>0 then flag = 'KO';
Else flag='OK';
答案 1 :(得分:0)
最简单的方法是声明数组,并做一个简单的“做”。穿过田野。 在这段代码中,我添加了一个告诉程序停止扫描检查的步骤,如果其中一个字段有" KO"。 我已经设置了一些样本数据,其中n = 4。
data dataset;
input ID $ check1 $ check2 $ check3 $ check4 $;
cards;
A OK OK OK OK
B OK OK OK KO
C KO OK OK OK
D KO KO KO OK
;
run;
data dataset;
set dataset;
array check_array{4} check1-check4;
do i=1 to 4;
if result ne "KO" then do;
if check_array{i}="OK" then result="OK"; else result="KO";
end;
end;
run;