Hello,
I have 35 variables for 35 possible diagnosis codes a patient can have. I have a list of diagnoses of interest and need to "blank out" diagnoses which are not on the list. The array I've coded doesn't produce an error message, but I noticed in the output that it appears to be blanking out all the diagnoses, including the ones of interest.
Here's an example of the code:
data base1;
set base;
array diag_code diag_code_01 - diag_code_35;
do i = 01 to dim(diag_code);
if substr(diag_code(i),1,4) not in ("T652")
or substr(diag_code(i),1,3) not in ("O46")
then diag_code(i) = ' ';
end;
drop i;
run;
Any suggestions for how to fix this?
Thanks so much for your advice!
I think you need AND rather than OR in your condition.
I think you need AND rather than OR in your condition.
Yes, changing AND to OR would work. This simplification should also work:
if diag_code(i) not in : ('T652', 'O46') then diag_code(i) = ' ';
Remember then colon !
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.