title '6e. Mixing Categorical and Continuous Data Percentages with Descriptive Stats'; *proc format; *picture pct 0-100=009.0% (mult=1000); quit; Proc format; value agec 1='Age (Years)'; value sexc 1='Sex'; value wgtc 1='Weight'; value agefmt 1='0 - 15' 2='16 - 64' 3='>= 65'; value sexfmt 1='Male' 2='Female'; value wgtfmt 1='<= 100' 2='> 100'; run; proc tabulate data=class missing; var weight; class agecol sexcol wgtcol agecat sexcat wgtcat; format agecat agefmt. sexcat sexfmt. agecol agec. sexcol sexc. wgtcat wgtfmt. wgtcol wgtc.; keylabel N='N' PCTN='%'; tables (agecol=' '*agecat=' '*(n='N' pctn='%'*f=4.1) wgtcol=' '*wgtcat=' '*(n='N' pctn='%'*f=4.1) wgtcol=' '*weight=' '*(n='N'*f=8. mean='Mean'*f=5.1 std='Std'*f=5.1 min='Min'*f=3. max='Max'*f=3.) ), (sexcol=' '*sexcat=' ' all); * tables agecol=' '*agecat=' '*f=pct. wgtcol=' '*wgtcat=' '*f=pct. weight=' '*(n='N'*f=8. mean='Mean'*f=5.1 std='Std'*f=5.1 min='Min'*f=3. max='Max'*f=3.) , sexcol=' '*sexcat=' '; run; * Alternative to use colpctn; proc tabulate data=class missing; var weight; class agecol sexcol wgtcol agecat sexcat wgtcat; format agecat agefmt. sexcat sexfmt. agecol agec. sexcol sexc. wgtcat wgtfmt. wgtcol wgtc.; keylabel N='N' PCTN='%'; tables (agecol=' '*agecat=' '*(n='N' colpctn='%'*f=4.1) wgtcol=' '*wgtcat=' '*(n='N' colpctn='%'*f=4.1) wgtcol=' '*weight=' '*(n='N'*f=8. mean='Mean'*f=5.1 std='Std'*f=5.1 min='Min'*f=3. max='Max'*f=3.) ), (sexcol=' '*sexcat=' ' all); run;