02-09-2016 04:40 AM
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;
02-09-2016 10:40 AM
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.