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.
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.