As part of an if-then statement, I need to flag observations with certain codes in any of 25 variables dx1-dx25. What is the best way to do this?
y=0
if not missing(x) and...
<something translating to 123 or 234 in any of dx1-dx25>
...then y=1
end;
run;
Double arrays. One with the list of values you’re looking for and a second with the dx.
Then loop through the smaller array and use WHICHC to search for the values. Use a LEAVE/BREAK to exit the loop once the flag is set.
Another approach would be to make it a long data set than it’s a very easy WHERE filter on the query.
Can I use double arrays if this is one part of multiple ands in an if-then statement?
i.e.
y=0;
if not missing(x)
and age>=18
and died = 0
and <array statement here??>
then do;
y=1;
end;
run;
You can nest or add diff criteria just have to make sure the order is correct.
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.