Oops!, I took the list as 1:969 where I missed to start from 0 i.e. 0:969.
Correction:
data have;
infile datalines dlm="," dsd missover;
input ID Disease_1_0 $ Disease_2_0 $ Disease_3_0 $ Disease_4_0 $;
datalines;
1,C000,B005,,
2,D55, ,C97,
3,,C97,,,
4,K00,,,,
5,,D57,,,
;
run;
data want;
set have;
array c(000:969) _temporary_ (0:969);
array t Disease_1_0--Disease_4_0;
do _n_=1 to dim(t) until(cancer=1);
cancer= first(t(_n_))='C' and input(compress(t(_n_),,'kd'),best.) in c;
end;
run;
proc print noobs;run;
... View more