DATA Step, Macro, Functions and more

Using an array to 'blank out' values that don't meet a certain criteria?

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

Using an array to 'blank out' values that don't meet a certain criteria?

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!

 

 

 


Accepted Solutions
Solution
‎04-21-2017 04:27 PM
Super User
Posts: 17,819

Re: Using an array to 'blank out' values that don't meet a certain criteria?

I think you need AND rather than OR in your condition.

View solution in original post


All Replies
Solution
‎04-21-2017 04:27 PM
Super User
Posts: 17,819

Re: Using an array to 'blank out' values that don't meet a certain criteria?

I think you need AND rather than OR in your condition.

Super User
Posts: 5,081

Re: Using an array to 'blank out' values that don't meet a certain criteria?

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 !

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 128 views
  • 2 likes
  • 3 in conversation