I tried this method for creating the macro for variables ,so how will i use this for a dataset with attribe statement %macro adsl; proc sql noprint; select memname into:names separated by '|' from dictionary.tables where libname eq 'RAW' and memname not in ('DEFINE'); quit; %put &names; %let i=1; %do %while(%scan(&names,&i,|) ne ); %put **********************; %put **********************; %put * ; %put * %scan(&names,&i,|); %put * ; %put **********************; proc sql noprint; select domain into:dslabel from rawdata.define where domain eq "%scan(&names,&i,|)"; select compress(put(count(*),8.)) into:cn from rawdata.define where domain eq "%scan(&names,&i,|)"; select variable, label, length into:column1 - :column&cn, :label1 - :label&cn, :vform1 - :vform&cn from rawdata.define where domain eq "%scan(&names,&i,|)"; quit; data derdata.%scan(&names,&i,|) (label="&dslabel" ); set RAW.%scan(&names,&i,|); %do j=1 %to &cn; label &&&column&j ="&&&label&j"; format &&&column&j &&&vform&j..; %end; run; %let i=%eval(&i+1); %end; %mend adsl;
... View more