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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.