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.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.