hay, i have some problem. i want to looping all macro, and expected output is i have 3 dataset output from proc freq (test_education ; test_residence and test_monthly_income) but my code works for the last variable in macro %LET (monthly_income).. is it possible to me if i want to automatically create 3 dataset in row.. how is it possible? is my sas code is wrong? thanks sorry for my bad english.. here i attach the code... %macro infoid(data,xvar,yvar); data _null_; if 0 then set &data.; array _x &xvar; array _y &yvar; call symput("nx", trim(left(put(dim(_x),12.)))); call symput("ny", trim(left(put(dim(_y),12.)))); length _mname _vname $20; do _i=1 to dim(_x); _mname='x'||trim(left(put(_i,12.))); call execute('%global '||_mname); call vname(_x[_i],_vname); call symput(_mname,trim(_vname)); end; do _i=1 to dim(_y); _mname='y'||trim(left(put(_i,12.))); call execute('%global '||_mname); call vname(_y[_i],_vname); call symput(_mname,trim(_vname)); end; stop; proc sort data=&data.(keep= &&x&nx gbi ) out=test_&&x&x; by &&x&nx; run; %mend; %let xvar = education_level residence monthly_income ; %infoid(&xvar,gbi);
... View more