I am using this macro to generate means, frequencies, and percentages for a number of survey questions/items. Each survey question gets its own dataset and all response options (0, 1, or 2) get their own dummy variable within each dataset. Right now I apply the macro to each survey question (A1, B1, B2_1,...H9) individually (see code at the bottom). If there are 100 survey questions that would result in 100 repetitions. How could I apply the macro repeatedly in a simpler/more efficient way? %macro calc(var); data &var. (keep=&var. v2 v1 v0); set tbl ; v2=0 ; v1=0 ; v0=0 ; if &var.=0 then v0=1 ; else if &var.=1 then v1=1 ; else if &var.=2 then v2=1 ; else if &var.=. then do ; v2=. ; v1=. ; v0=. ; end ; run ; proc summary data=&var.; var &var. v2 v1 v0 ; output out=&var.x (keep= &var. v2 v1 v0 N sum) mean= &var. v2 v1 v0 N=N sum=sum ;; run ; %mend calc ; %calc(A1); %calc(B1); %calc(B2_1); etc. Thanks!
... View more