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
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.
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.
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
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.