Thanks Tom - that would probably explain why Kurt's code is giving slightly more observations.
Try this:
%let codes = '78060', '7784', '4659', '07999', '46611', '77989', '5990', '53081', '27651', '77189', '44619', '77982', '77931', '7746', 'V290', '77182', '7755', 'V070', '6910', '78791';
data patients;
set source_table;
array a_dx dx_code1-dx_code41;
do i = 1 to dim(a_dx);
if find("&codes",cats("'",a_dx,"'")) then do; /* You have a true result, no point testing remaining array cells */
output; /* Save the current record */
return; /* Move on to the next record */
end;
end;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.