Hi,
I have a variable set with variables q1_0_on, q1_0_ab, q1_1_on, q1_1_ab ... etc. all the way to q1_12_on, q1_12_ab.
Essentially what i'd like to do is to recode it into a different variable with a scale (1,0,-1) with an array.
q1_0 = 0;
if q1_0_on=1 and q1_0_ab=0 then q1_0=1;
if q1_0_on=0 and q1_0_ab=1 then q1_0=-1 ;
i could duplicate the code above 12 times but i was hoping there's an easy way with an array.
Thanks for your help!
Looks like you need 3 arrays.
Array Q_on q1_0_on q1_1_on (continue adding until q1_12_on;
Array Q_ab q1_0_ab q1_1_ab (ditto);
array Q q1_0 q1_1 ... q1_12;
do i = 1 to dim (Q);
Q = 0;
if Q_on=1 and Q_ab=0 then Q=1;
if Q_on=0 and Q_ab=1 then Q=-1;
end;
drop i;
Looks like you need 3 arrays.
Array Q_on q1_0_on q1_1_on (continue adding until q1_12_on;
Array Q_ab q1_0_ab q1_1_ab (ditto);
array Q q1_0 q1_1 ... q1_12;
do i = 1 to dim (Q);
Q = 0;
if Q_on=1 and Q_ab=0 then Q=1;
if Q_on=0 and Q_ab=1 then Q=-1;
end;
drop i;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.