orderidx.sas
%macro orderIDX (data, indexvar);
%* data - name of data set on which to create an index;
%* indexvar - list of data set variables to index;
%* Richard A. DeVenezia 12/23/98;
%* Create an index named 'order' on a dataset using variables in indexvar;
%local LIB MEM;
%if (%scan (&DATA,2,.) =) %then %do;
%let LIB=WORK;
%let MEM=&DATA;
%end;
%else %do;
%let LIB=%scan(&DATA,1,.);
%let MEM=%scan(&DATA,2,.);
%end;
proc datasets nolist lib=&LIB;
modify &MEM;
%if (%scan (&indexvar,2) eq ) %then
index create &indexvar;
%else
index create order=(&indexvar);
;
run;
%mend orderidx;