Previous Page | Next Page

TEMPLATE Procedure: Creating Crosstabulation Table Templates

Example 3: Adding Custom Formats to Cellvalues


PROC TEMPLATE features: EDIT statement
Other ODS features:

ODS HTML statement

ODS PATH statement



Program Description

This example does not use the DEFINE CROSSTABS statement. Instead, it uses the EDIT statement to edit the crosstabulation table template Base.Freq.CrossTabFreqs that was created in Creating a Crosstabulation Table Template with a Customized Legend by changing the formats of several cellvalues. In Creating a Crosstabulation Table Template with a Customized Legend, the following format values were used:

Frequency: BEST6

Percent, RowPercent, ColPercent: 6.2

In this example, the Frequency cellvalue is changed to COMMA12; and the Percent, RowPercent, and ColPercent cellvalues are changed to 6.3.

Program

 Note about code
 Proc Format;
   Value Govtfmt -3='Council Manager'
                  0='Commission'
                  3='Mayor Council'
                 .N='Not Applicable'
                  .='   ?';
   Value rowfg   -3='red'
                  0='purple'
                  3='blue'
                 .N='green'
                  .='black'
                  other='black';   
   Value Robfmt   1='100 or  Less'
                  2='101-200'
                  3='201-300'
                  4='Over 300'
                 .N='Not     Known'
                  .='   ?';
    Value colfg   1='yellow'
                  2='red'
                  3='blue'
                  4='purple'
                 .N='green'
                  .='black'
                  other='black';
run;

data gov;
   Label Citygovt='City Government Form'
        Robgrp='Number of Meetings Scheduled';
   Input Citygovt Robgrp Weight;  Missing N;
   Format Citygovt Govtfmt. Robgrp Robfmt.;
   LOOP: OUTPUT; WEIGHT=WEIGHT-1; IF WEIGHT>0 THEN GOTO LOOP;
   DROP WEIGHT;
datalines;
0 1  6  
0 3  3  
0 2  7  
0 4  5  
N N 10 
-3 1 47 
-3 3 49 
-3 2 63 
-3 4 52  
. 2  1  
3 1 31  
3 2 37  
3 3 27  
3 4 55  
3 .  1  
; 
 Note about code
ods noproctitle;
ods path (prepend) work.templat(update);
 Note about code
proc template;
  edit Base.Freq.CrossTabFreqs;
 Note about code
     edit Frequency;
        format=COMMA12.;
         
     end;
     edit Percent;
        format=6.3;
     end;
     edit RowPercent;
        format=6.3;
     end;
     edit ColPercent;
        format=6.3;
     end;
  end;
run;
 Note about code
ods html file="userfmt.html" style=ocean;
 Note about code
title "Applying Custom Formats to Cellvalues";
proc freq;
   tables citygovt*robgrp / missprint;
run;
 Note about code
ods html close;

Output

Crosstabulation Output with Custom Formats Applied to Cellvalues

[Crosstabulation Output with Custom Formats Applied to Cellvalues]

Previous Page | Next Page | Top of Page