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 !
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.