BookmarkSubscribeRSS Feed
JohnB_
Calcite | Level 5

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

2 REPLIES 2
Reeza
Super User

Is there a reason you can't name them that way?

array testb(27:55) testb27-testb55;

art297
Opal | Level 21

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;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

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!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1004 views
  • 0 likes
  • 3 in conversation