BookmarkSubscribeRSS Feed
BobHope
Quartz | Level 8

I am facing a problem with macro variable naming. I couldn't figure out what do you call situations like this but I have attached a sample code.

The issue is that I need to get the variable model on the data foo to resolve to the macro variable model_&&multi&i.

I have tried almost everything I can come up with(&&model_&&multi&i,&&&model_&&multi&i etc.), but probably my limited under the hood knowledge on macro variables is the issue.


4 REPLIES 4
Kurt_Bremser
Super User

Have you tried doing it in stages?

like

%let helpvar=&&multi&i;

and then

&&model_&helpvar

If you break it into several steps, you can inspect the contents of the variables with %put, or use options symbolgen;

BobHope
Quartz | Level 8

Thanks for your answer. In fact I did try that also, did not work. Gives me resolve error in log.

Kurt_Bremser
Super User

See this:

%let model_testx=some_content;

%let multi1=testx;

%let i=1;

%put &&multi&i;

%let helpvar=&&multi&i;

%put &&model_&helpvar;

The last %put shows some_content.

RW9
Diamond | Level 26 RW9
Diamond | Level 26

Not knowing exactly what you are trying to achieve why not something like:

proc sql;                              /* Create a dataset which has you loop values (so this &n_multi) */

     create table LOOP as

     select     distinct

                   NAME

     from       ...;

quit;

data _null_;                         /* Using the dataset you created above, generate a bit of code for each observation in that dataset

                                                  with the code and the loop variable */

     set loop;

     call execute('data foo;

                              model="'||strip(name)||'";

                          run;');

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
  • 4 replies
  • 1450 views
  • 0 likes
  • 3 in conversation