What does "it flag a new variable as one" actually mean?
WHICHN or WHICHC (depending on whether your diagnosis variables and diagnosis codes are numeric or character) may work.
A brief example of what I think you are doing. Diag holds the diagnosis codes, the array c has the code values you are looking for and the array f has variable that hold flag values of 1 or 0 for found.
data work.example;
informat diag1 - diag3 $2.;
input diag1 - diag3 ;
array d diag: ;
/* this holds the values of the codes to search for*/
array c (4) $ 2 _temporary_ ('Ab','Ac','Ba','Bb');
/* and results size should match array c*/
array f Ab Ac Ba Bb;
do i=1 to dim(c);
f[i]=whichc(c[i],of d(*))>0;
end;
datalines;
Ab Ac Ad
Ac Ac Ae
Ba Bb Bc
Bb Bb Bb
;
run;
... View more