BookmarkSubscribeRSS Feed
thanikondharish
Calcite | Level 5
%let I=1;
%let state1=ap;
%let ap1=India;
%let India1=Asia;
/*First*/
I want to resolve ap1 macro variable I wrote like below.
Data ex1;
Name="&&&state&I." ;
Run;

/*Second*/
I want to resolve India1 macro variable I wrote like below.
Data ex2;
Name="&&&&&&&state&I.";
Run;
But above 2 codes not working the macro variables are not resolving
5 REPLIES 5
PeterClemmensen
Tourmaline | Level 20

Just to be clear, what do you want the value of Name to be in the two code snippets?

thanikondharish
Calcite | Level 5
First: name=India
Second name=asia
PeterClemmensen
Tourmaline | Level 20

Are the macro variables fixed or can I change them a bit? Seems easier not having the 1 in all of them

Jagadishkatam
Amethyst | Level 16

Please try the below code

 


Data ex1;
Name="&&&state&I.&&i" ;
Run;
Thanks,
Jag
Shmuel
Garnet | Level 18

Change your code into:

%let I=1;
%let state1=ap;
%let ap1=India;
%let India1=Asia;
/*First  - I want to resolve ap1 macro variable I wrote like below. */
Data ex1;
Name="&&&state&I&&I." ; 
Run;

/*Second*/
I want to resolve India1 macro variable I wrote like below.
Data ex2;
Name="&&&&&&state&I&&i.";
Run;

Remember - sas resolves macros step by step. Each pair of && become a single &, thus:

1) &&&&&&state&I&&i

2) &&&state1&i

3) &&ap1

4) India

 

 

 

SAS Innovate 2025: Register Now

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!

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
  • 5 replies
  • 854 views
  • 2 likes
  • 4 in conversation