Hi,
I would like to recode a bunch of variables at the same time. For e.g. I have the following variables:
1) A
2) B
3) C
4) D
They all take values from 1 through 9. I want to recode the values for all these variables in the same manner.
E.g. if A = 1 then A = 10. The same rule applies to all the variables (A-D). Is there a way to do this using a macro or a loop? I don't want to give if-then commands individually for each of the 4 variables and am looking for a more efficient way to do this.
Thanks for your help!
SAS contains a standard tool for processing a group of variables in the same way. Arrays do that:
data want;
set have;
array vars {4} a b c d;
do _n_=1 to 4;
if vars{_n_}=1 then vars{_n_}=10;
end;
run;
You'll need to type all your IF/THEN statements once. Then the DO loop changes one variable at a time, applying all the logic between DO and END.
SAS contains a standard tool for processing a group of variables in the same way. Arrays do that:
data want;
set have;
array vars {4} a b c d;
do _n_=1 to 4;
if vars{_n_}=1 then vars{_n_}=10;
end;
run;
You'll need to type all your IF/THEN statements once. Then the DO loop changes one variable at a time, applying all the logic between DO and END.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.