BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
javvadi
Calcite | Level 5

Dear all,

%let var1=a;

%let var2=b;

%let var3=c;

%let var4=d;

%let var5=e;

%let x= &var1 %to &var5;

i need x=a,b,c,d,e

thank you

1 ACCEPTED SOLUTION

Accepted Solutions
Amir
PROC Star

Hi,

If you really want to make use of "%to" for larger lists then you'll need to use it inside a macro definition, e.g.:

%let var1=a;

%let var2=b;

%let var3=c;

%let var4=d;

%let var5=e;

%macro makecsv(root,fromval,toval);

  %let sep=;

  %let makecsv=;

  %do csvloop=&fromval %to &toval;

    %let makecsv=&makecsv&sep&&&root&csvloop;

    %let sep=%str(,);

  %end;

  &makecsv;

%mend makecsv;

%let x=%makecsv(var,1,5);

%put x=&x;

Regards,

Amir.

Message was edited by: Amir Malik - formatting.

View solution in original post

3 REPLIES 3
data_null__
Jade | Level 19
17         %let var1=a;
18         %let var2=b;
19         %let var3=c;
20         %let var4=d;
21         %let var5=e;
22        
23        
24         %let x = &var1,&var2,&var3,&var4,&var5;
25        
26         %put NOTE: &=x;
NOTE: X=a,b,c,d,e
Amir
PROC Star

Hi,

If you really want to make use of "%to" for larger lists then you'll need to use it inside a macro definition, e.g.:

%let var1=a;

%let var2=b;

%let var3=c;

%let var4=d;

%let var5=e;

%macro makecsv(root,fromval,toval);

  %let sep=;

  %let makecsv=;

  %do csvloop=&fromval %to &toval;

    %let makecsv=&makecsv&sep&&&root&csvloop;

    %let sep=%str(,);

  %end;

  &makecsv;

%mend makecsv;

%let x=%makecsv(var,1,5);

%put x=&x;

Regards,

Amir.

Message was edited by: Amir Malik - formatting.

Haikuo
Onyx | Level 15

So there could be many solutions, but do remember SAS Macro is nothing but a text string maneuver.

%let var1=a;

%let var2=b;

%let var3=c;

%let var4=d;

%let var5=e;

%macro cat;

%global x;

%let x=;

  %do i=1 %to 5;

    %if &i=1 %then %let x=&var1;

      %else  %let x=&x,&&var&i;

  %end;

%mend;

%cat;

%put &x;

    

Haikuo

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