I think that this code is helpful: %macro rename1(oldvarlist, newvarlist); %let k=1; %let old = %scan(&oldvarlist, &k); %let new = %scan(&newvarlist, &k); %do %while(("&old" NE "") & ("&new" NE "")); rename &old = &new; %let k = %eval(&k + 1); %let old = %scan(&oldvarlist, &k); %let new = %scan(&newvarlist, &k); %end; %mend; data want ; set have; %rename1(ar1 ar2 ar3 ar4 ar5, CA45245E1097 CH0018666781 US00208J1088 US0025671050 US0038301067); run; But if I have ar1, ar2, ......., ar200, then what can I do? I tried with the following but it's not working. %let oldvarlist= ar1-ar5; %let newvarlist= CA45245E1097 CH0018666781 US00208J1088 US0025671050 US0038301067; data want ; set have; %rename1(&oldvarlist, &newvarlist); run;
... View more