Help using Base SAS procedures

Use different format for different categories

Reply
Frequent Contributor
Posts: 75

Use different format for different categories

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;
 
 

 

Super User
Posts: 11,343

Re: Use different format for different categories

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.

 

Ask a Question
Discussion stats
  • 1 reply
  • 201 views
  • 0 likes
  • 2 in conversation