Using SAS EG 7. If I want to apply different format to different categories in proc tabulate, is there a way to do it?
For eg, I want to have different grouping for the salary of a male vs a female. Do I have to generate different tables for males and females? Thank you
proc format;
value SalaryM
500-<1000='500-<1000'
1000-high='1000 onwards'
;
value SalaryF
500-<1500='500-<1500'
1500-high='1500 onwards'
;
PROC TABULATE DATA=test MISSING F=COMMA9. FORMCHAR=' ';;
CLASS AGE Sex salary / preloadfmt order=data;
Var EX3;
KEYLABEL N=' '
SUM=' '
ALL ='TOTAL';
TABLES (ALL AGE=' '),(Sex =' ')*(ALL Salary=' )/PRINTMISS;
RUN;
If I'm attempting something like with Proc tabulate to display it would require either preprocessing the data for and create a single variable like Sex_Salary that was essentially valued as "Male 500 < 1000" "Male 1000+" and such.
OR to recode salary to categories such as 1, 2, 3, 4 and assign the recodes based on gender so that you could have a format like
proc format;
value SalaryCode
1='500-<1000'
2='1000 onwards'
3='500-<1500'
4='1500 onwards'
;
run;
so with 1 and 2 assigned to males and 3 and 4 assigned to females then that may work. But you would not want to use PRELOADFMT for this variable/format combination as the males would show the female range and vice versa.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
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.