data have;
infile cards truncover dsd;
length id 8. var_1-var_3 $20.;
input ID Var_1 $ Var_2 $ Var_3 $;
cards;
11, None(0%), Nearly all(100%), None(0%)
12, Nearly all(100%), None(0%), None(0%)
13, None(0%), Some (50%) , Nearly all(100%)
14, Some(50%), Nearly all(50%), Some(20%)
;
run;
data want;
set have;
array _var(*) var_1-var_3;
if find(catx(" | ", of _var(*)), "None") > 0 then flag="1";
else flag = "0"; *probably use better names;
run;
Here's a tutorial on using Arrays in SAS https://stats.idre.ucla.edu/sas/seminars/sas-arrays/
Seems like a better usage for arrays than macros.
... View more