DATA Step, Macro, Functions and more

Show All Ranges of Proc Format in Proc Freq

Reply
Contributor
Posts: 64

Show All Ranges of Proc Format in Proc Freq

Hi,

 

I am associating a user defined format with a variable and generating a freq report. I want to see all values of proc format in the report, even though they may not be in the dataset. Below is an example.

 

proc format;
value test
.='Missing'
low-<0='<0'
1-5='1-5'
6-10='6-10'
11-15='11-15'
16-high='15+'
;
run;

 

data test;
infile datalines;
input a;
datalines;
.
-1
5
7
18
;
run;

 

proc freq data=test;
tables a/list missing sparse;
format a test.;
run;

 

The resulting report does not show the 11-15 range since it is not in the dataset. I want to show missing for 11-15.

 

Help appreciated.

 

Super User
Posts: 17,842

Re: Show All Ranges of Proc Format in Proc Freq

PRELOOADFMT is the option your looking for, in combination with PROC TABULATE. 

 

 

 

Proc tabulate data = have;
Class a / preloadfmt missing;
Format a test.;
Table a;
Run;
Contributor
Posts: 64

Re: Show All Ranges of Proc Format in Proc Freq

This doesn't give me percentages.

##- Please type your reply above this line. Simple formatting, no
attachments. -##
Super User
Posts: 10,511

Re: Show All Ranges of Proc Format in Proc Freq

Tabulate has several percentage calculators available. You might try 

 

Proc tabulate data = have;
Class a / preloadfmt missing;
Format a test.;
Table a,

          n pctn;
Run;

Contributor
Posts: 64

Re: Show All Ranges of Proc Format in Proc Freq

Are you sure this is working. I still don't see 11-15 range in the report.

##- Please type your reply above this line. Simple formatting, no
attachments. -##
Super User
Posts: 17,842

Re: Show All Ranges of Proc Format in Proc Freq

Try adding the PRINTMISS option after the TABLE statement. 

 

See the example in the docs:

http://support.sas.com/documentation/cdl/en/proc/65145/HTML/default/viewer.htm#p1f1t9bipbeqy5n1vowhz...

Ask a Question
Discussion stats
  • 5 replies
  • 95 views
  • 0 likes
  • 3 in conversation