I want and must do it using proc tabulate. See my example: data test; input patnr yesno ; cards; 1 1 2 . 3 1 4 1 5 2 6 2 7 . 8 2 9 2 10 2 11 1 12 . ; run; data test; set test; if yesno>.z then id=1; run; proc format; value yesno_ (multilabel) .='Missing' 1,2=' Overall non-missing' 1=' Yes' 2=' No'; picture pct (round) .-.z ='9.9' (noedit) 0 ='9.9' (mult=100 ) 0<-0.009999='<0.01' (noedit) 0.01-0.99999='9.9' (mult=100 ) 1-100='000.0' 101-high='----'; run; proc tabulate data=test format=5. missing order=formatted; var id ; class yesno / mlf; keyword n pctn all; table (yesno ='' all='TOTAL') , (n='N' pctn<yesno*id all*id id>='%'*f=pct.) /rts=40 box=[label=" "] printmiss misstext='0' row=float indent=3 contents=''; format yesno yesno_. ; run;
... View more