Download Richard Devenezia's seplist macro: http://www.devenezia.com/downloads/sas/macros/index.php?m=seplist Or, download my slightly modified version: SAS/seplist.sas at master · scottbass/SAS · GitHub Also download my loop macro from my GitHub site Lots of good macros on both sites Then, you can do: %let varlist=%str(var1, var2, var3); %put %seplist(%superq(varlist),indlm=%str(,),prefix=a.); * I hate commas in a macro variable list. That's why I have to use %superq above.; * Don't use them, let %seplist add them later at "run time" ; %let varlist= var1 var2 var3 ; %let newlist = %seplist(&varlist,prefix=a.); %put &=newlist; * Or, use %loop, which is more complex, but can convert both ways ; %macro newlist; %* convert oldlist to newlist ; %if (&__iter__) gt 1 %then %str(,); a.&word %mend; %macro oldlist; %* convert newlist to oldlist ; %scan(&word,2,.) %mend; %let varlist=varA varB varC; %let newlist = %loop(&varlist,mname=newlist); %put &=newlist; %let oldlist = %loop(%superq(newlist),dlm=%str(,),mname=oldlist); %put &=oldlist; Here are the results: 3 %let varlist=%str(var1, var2, var3); 4 %put %seplist(%superq(varlist),indlm=%str(,),prefix=a.); a.var1,a.var2,a.var3 5 6 * I hate commas in a macro variable list. ; 7 * Don't use them, let %seplist add them later at "run time" ; 8 9 %let varlist= 10 var1 11 var2 12 var3 13 ; 14 %let newlist = %seplist(&varlist,prefix=a.); 15 %put &=newlist; NEWLIST=a.var1,a.var2,a.var3 16 17 * Or, use %loop, which is more complex, but can convert both ways ; 18 %macro newlist; 19 %* convert oldlist to newlist ; 20 %if (&__iter__) gt 1 %then ,; 21 a.&word 22 %mend; 23 %macro oldlist; 24 %* convert newlist to oldlist ; 25 %scan(&word,2,.) 26 %mend; 27 28 %let varlist=varA varB varC; 29 %let newlist = %loop(&varlist,mname=newlist); 30 %put &=newlist; NEWLIST=a.varA , a.varB , a.varC 31 32 %let oldlist = %loop(%superq(newlist),dlm=%str(,),mname=oldlist); 33 %put &=oldlist; OLDLIST=varA varB varC I would just use %seplist unless I needed to convert back to the original list and for some reason didn't preserve the original list. %seplist is REALLY handy for converting between data step and SQL syntax. I used it ALL the time. HTH...
... View more