我在SAS
中有一個表,n
字段叫做check1, check2, ... , checkN
。每個字段都可以是「OK」或「KO」。如果每個檢查都是「OK」,我想生成一個「OK」的字段,如果其中一個檢查是「KO」,那麼它就是「KO」。我能怎麼做?如何在SAS中創建一個同時考慮更多字段的字段
在此先感謝
我在SAS
中有一個表,n
字段叫做check1, check2, ... , checkN
。每個字段都可以是「OK」或「KO」。如果每個檢查都是「OK」,我想生成一個「OK」的字段,如果其中一個檢查是「KO」,那麼它就是「KO」。我能怎麼做?如何在SAS中創建一個同時考慮更多字段的字段
在此先感謝
使用WHICHC()函數以及布爾檢查來查看它是否大於零。如果您有命名約定,則不需要聲明數組。
Flag = whichc('KO', of check1-checkN) >0;
編輯:
If WHICHC('KO', of check1-checkN)>0 then flag = 'KO';
Else flag='OK';
最簡單的方法是聲明數組,並做穿過田野簡單的「做」循環。 在這段代碼中,我添加了一個步驟,告訴程序停止掃描checkn,如果其中一個字段有「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;
如果所有字段都包含OK或KO那麼你可以使用'min'或'max'功能,而不是 – Longfish