/* CREATE SAMPLE DATA */ data work.my_ds; input variableA $ variableB columnC $; datalines; A 1 X B 2 Y C 3 Z ; run; title "Original Dataset"; proc print data=work.my_ds noobs; run; /* RENAME ONE VARIABLE */ data work.rename_one_variable; set work.my_ds (rename=(variableA = FirstColumn)); extraColumn = FirstColumn||"A"; run; title "Rename One Variable"; proc print data=work.rename_one_variable noobs; run; /* RENAME MULTIPLE VARIABLES */ data work.rename_multiple_variables (rename=(variableA = FirstColumn variableB = SecondColumn columnC = ThirdColumn)); set work.my_ds ; extraColumn = variableA||"A"; run; title "Rename Multiple Variables"; proc print data=work.rename_multiple_variables noobs; run; /* RENAME ALL VARIABLES - ADD A SUFFIX */ proc sql noprint; select cats(name,"=",name,"_NEW") into :rename_list_suffix separated by " " from dictionary.columns where libname="WORK" and memname="MY_DS"; quit; %PUT &=rename_list_suffix.; data work.add_suffix; set work.my_ds (rename=(&rename_list_suffix.)); run; title "Add Suffix"; proc print data=work.add_suffix noobs; run; title; /* RENAME ALL VARIABLES - ADD A PREFIX */ proc sql noprint; select cats(name,"= NEW_",name) into :rename_list_prefix separated by " " from dictionary.columns where libname="WORK" and memname="MY_DS"; quit; data work.add_prefix; set work.my_ds (rename=(&rename_list_prefix.)); run; title "Add Prefix"; proc print data=work.add_suffix noobs; run; title; /* RENAME ALL VARIABLES - SAME PATTERN */ proc sql noprint; select cats(name,"=",tranwrd(name,"variable","my_column")) into :rename_list_same_pattern separated by " " from dictionary.columns where libname="WORK" and memname="MY_DS" and name like "variable%"; quit; data work.rename_same_pattern; set work.my_ds (rename=(&rename_list_same_pattern.)); run; title "Rename Same Pattern"; proc print data=work.rename_same_pattern noobs; run; title;