data a;
input x y;
cards;
1 3
3 4
3 4
5 6
;
%macro zeroone(lib,table);
data _null_;
set sashelp.vcolumn end=last;
call symputx('var'||left(varnum),name);
if last then call symputx ('n',varnum);
where libname="&lib" and memname="&table";
run;
%do i=1 %to &n;
proc sql noprint;select max(&&var&i) into:max_&&var&i from &lib..&table;quit;
proc sql noprint;select min(&&var&i) into:min_&&var&i from &lib..&table;quit;
%end;
data &lib..&table;
set &lib..&table;
%do i=1 %to &n;
&&var&i=(&&var&i-&&&&min_&&var&i)/(&&&&max_&&var&i-&&&&min_&&var&i);
%end;
run;
proc print;run;
%mend;
%zeroone(WORK,A);
|