This tutorial explains how to use PROC FREQ with examples. The PROC FREQ is one of the most frequently used SAS procedures which helps to calculate count/frequency and cumulative frequency.
Create a sample data set
data example1;
input x y $ z;
cards;
6 A 60
6 A 70
2 A 100
2 B 10
3 B 67
2 C 81
3 C 63
5 C 55
;
run;
Example 1 : To check the distribution of a categorical variable (Character)
proc freq data = example1;The TABLES statements tells SAS to return one-way to n-way frequency and crosstabulation tables and computes the statistics for these tables.
tables y;
run;
Output : PROC FREQ |
Example 2 : To remove unwanted statistics in the table
proc freq data = example1;
tables y /nocum;
run;
If you want only frequency, not percent distribution and cumulative statistics.
proc freq data = example1;
tables y /nopercent nocum;
run;
Example 3 : Cross Tabulation ( 2*2 Table)
proc freq data = example1;
tables y * x;
run;
Proc Freq Output |
Example 4 : Show Table in List Form
Suppose you do not want output to be shown in tabular form. Instead, you want final analysis to be displayed in list form (See the image below)
PROC FREQ List Form |
proc freq data = example1;The forward slash followed by LIST keyword produces the list styled table.
tables y * x / list;
run;
Example 5 : Hide Unwanted Statistics in Cross Tabulation
proc freq data = example1;
tables y * x / norow nocol nopercent;
run;
Example 6 : Request Multiple Tables
Example 7 : Use WEIGHT Statement
The WEIGHT statement is used when we already have the counts.
proc freq data = example1;
tables y * (x z) / norow nocol nopercent;
run;
The tables y*(x z) statement is equivalent to tables y*x y*z statement.Example - tables (a b)*(c d); is equivalent to tables a*c b*c a*d b*d;
Example 7 : Use WEIGHT Statement
Data example2;Example 8 : Store result in a SAS dataset
input pre $ post $ count;
cards;
Yes Yes 30
Yes No 10
No Yes 40
No No 20
;
run;
proc freq data=example2;
tables pre*post;
weight count;run;
proc freq data = example1;The OUT option is used to store result in a data file.
tables y *x / out = temp;
run;
Example 9 : Run Chi-Square Analysis
proc freq data = example1 noprint;
tables y * x/chisq;
output All out=temp_chi chisq;
run;
Good explaination!
ReplyDeleteThank you!
DeleteGreat tutorial...
ReplyDeletecould you also explain more on 'WEIGHT statement'
Good work, Keep it up :)
ReplyDeleteGlad you liked it. Cheers!
DeleteGood question bank and explanations.Keep posting!!
DeleteSimply amazing...
ReplyDeletesuperb description
ReplyDeleteGood Work, luck to stumble upon your site.
ReplyDelete