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 !
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.