Hello - I'm trying to get a proc freq output that contains 3 columns (all patients, COPD=0, COPD=1) instead of running 2 procedures and coping the answers over by hand. Can you help?
proc freq order=freq; table race; run;
proc freq order=freq; table race*COPD; run;
Desired output:
All COPD=0 COPD=1
race1
race2
race3
Also, is there a way to order by a certain column or will SAS always order by descending row sum?
You're probably better off switching from PROC FREQ to PROC TABULATE. Here's some untested code:
proc tabulate data=have;
class race copd;
tables race, all copd;
run;
If @Astounding's suggestion does not do what you want then please show us what you actually expect for out. Better would be to provide some example data in the form of a data step or use one of the SAS supplied data sets such as SASHELP.Class.
Plus you can make many tables with a single proc freq call such as
proc freq order=freq;
tables race race*COPD;
run;
Or if you want multiple tables with different options use multiple tables statements like
Proc freq order=freq; tables race; table race*copd/ chisqr; run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.