Hi @ankit___gupta, Please find modified SAS code below (last 2 %let statements within the first do loop, label and format statement in the second datastep). HTH. Thank you. /*
Paper 075-2009
Renaming in Batches
Vincent Weng, Educational Testing Service, Princeton, NJ
Ying Feng, CTB/McGraw-Hill, Monterey, CA
accessible via http://support.sas.com/resources/papers/proceedings09/075-2009.pdf
*/
/* Replacing Prefix on Selected Variables */
%macro replaceprefix(lib,dsn,start,end,oldprefix,newprefix);
proc contents data=&lib..&dsn.; title 'before renaming'; run;
data temp; set &lib..&dsn.; run;
%LET ds=%SYSFUNC(OPEN(temp,i));
%LET ol=%LENGTH(&oldprefix.);
%DO i=&start %TO &end;
%LET dsvn&i=%SYSFUNC(VARNAME(&ds,&i));
%LET l=%LENGTH(&&dsvn&i);
%LET vn&i=&newprefix.%SUBSTR(&&dsvn&i,&ol+1,%EVAL(&l-&ol));
%LET dsvnlab&i=%BQUOTE(%SYSFUNC(VARLABEL(&ds,%SYSFUNC(varnum(&ds,&&dsvn&i)))));
%LET dsvnfmt&i=%SYSFUNC(VARFMT(&ds,%SYSFUNC(varnum(&ds,&&dsvn&i))));
%end;
data &lib..&dsn.;
set temp;
%DO i=&start %TO &end;
&&vn&i=&&dsvn&i;
label &&vn&i=%STR(&&dsvnlab&i);
format &&vn&i &&dsvnfmt&i.;
drop &&dsvn&i;
%end;
%let rc=%SYSFUNC(CLOSE(&ds));
proc contents data=&lib..&dsn.;
title 'Replacing Prefix on Selected variables ';
run;
%mend replaceprefix;
... View more