data class;
set sashelp.class;
rename weight=p_random1_3343 height=p_random2_343 age=p_random3_34343;
run;
*create renaming list;
proc sql noprint;
select catx (' = ', name, substr(name,3,length(name)-5)) into :rename_list separated by
" " from sashelp.vcolumn where libname='WORK' and memname='CLASS' and
upcase(name) like 'P_%';
quit;
*rename variables;
proc datasets lib=work nodetails nolist;
modify class;
rename &rename_list;
quit;
*check that rename worked;
proc contents data=class;
run;
The SCAN won't work because you have multiple _ in the variable name, unlike the picture you posted.
Use this instead for the second part of the name, see code above.
substr(name,3,length(name)-5)
... View more