I am trying to use an array to create a new variable while preserving the old variable. The variables end in a number that range from 27-55, so I want my array range to match that. When I define the range with the existing variables, I get what I expect:
array test (27:55) x27 . . . x55; *These arrays refer to the correct variables;
But when I try to create a new variable:
array testb(27:55);
do i=27 to 55;
if test(i) = 1 then testb(i) = 5;
if test(i) = 2 then testb(i) = 10;
end;
I get the following variables
testb1 . . . testb29
Is there a way to define testb27-testb55 as new variables in an array? Thanks in advance for the help!
John
Is there a reason you can't name them that way?
array testb(27:55) testb27-testb55;
Here is one way:
data want (rename=(testb1-testb29=testb27-testb55));
array testb(27:55);
do i=27 to 55;
if i le 40 then testb(i) = 5;
else testb(i) = 10;
end;
output;
run;
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.