1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| data test;
set sashelp.class;
run;
%macro to_char;
proc sql noprint;
select name, '_'!!name ,max (monotonic()) into: old_var separated by ',',: new_var separated by ',' ,: nbr
from dictionary.columns where upcase(libname)='WORK' and upcase(memname)='TEST' and upcase(type)='NUM';
quit;
data new ( drop = %do i=1 %to &nbr. ; %scan("&new_var",&i,",") %end;);
set test ( rename=( %do i=1 %to &nbr. ; %scan("&old_var",&i,",")=%scan("&new_var",&i,",") %end; ) );
%do i=1 %to &nbr.;
%scan("&old_var",&i,",")=put(%scan("&new_var",&i,","), best.);
%end;
run;
%mend;
%to_char; |
Partager