Freq过程介绍
原文地址:http://www2.sas.com/proceedings/sugi31/252-31.pdf
转载请注明出处: http://blog.sina.com.cn/s/blog_5d3b177c0100b68k.html
原文没有提供数据,所以就在网上随便找了个数据进行测试,地址如下:http://www.sasenterpriseminer.com/data/htwt.xls
该数据包含4个变量(性别sex,年龄age,身高height,体重weight),共237个观测。
1 Freq 语法
proc freq
by variables ;
exact statistic-options < / computation-options> ;
output
tables requests < /options> ;
test options ;
weight variable ;
2 如果直接运行freq过程步,程序如下,它将会对所有的变量进行操作。
proc freq data=Htwt;
run;
部分结果:
FREQ 过程
sex
sex 频数 百分比 累积频数 累积百分比
------------------------------------------------------------------------------
f 111 46.84 111 46.84
m 126 53.16 237 100.00
3 tables:得到给定变量的频数统计,或多变量的交叉表频数统计。
proc freq data=Htwt;
tables sex;
run;
结果如上。
4 format:对连续数值变量做Freq时,系统会对每个数值进行频数统计,这个结果一般不是我们所需要的。我们一般会将连续变量转换为离散变量,这个可以通过Format过程步来实现。
proc format;
value height_ctg 0-50 = '<50'
50-60 = '50-60'
60-high = '>60';
value weight_ctg 0-90 = '<90'
90-110 = '90-110'
110-high = '>110';
run;
proc freq data=Htwt;
tables weight*height;
format weight weight_ctg.;
format height height_ctg.;
run;
结果:
FREQ 过程
weight * height 表
weight(weight) height(height)
频数 |
百分比 |
行百分比|
列百分比|50-60 |>60 | 合计
--------+--------+--------+
<90 | 61 | 13 | 74
| 25.74 | 5.49 | 31.22
| 82.43 | 17.57 |
| 67.78 | 8.84 |
--------+--------+--------+
90-110 | 24 | 54 | 78
| 10.13 | 22.78 | 32.91
| 30.77 | 69.23 |
| 26.67 | 36.73 |
--------+--------+--------+
>110 | 5 | 80 | 85
| 2.11 | 33.76 | 35.86
| 5.88 | 94.12 |
| 5.56 | 54.42 |
--------+--------+--------+
合计 90 147 237
37.97 62.03 100.00
5 norow nocol nopercent:有时我们只需要频数,不需要各行各列的百分比,我们就可以在tables后面加上这些参数。
proc freq data=Htwt;
tables weight*height/norow nocol nopercent;
format weight weight_ctg.;
format height height_ctg.;
run;
结果:
FREQ 过程
weight * height 表
weight(weight) height(height)
频数 |50-60 |>60 | 合计
--------+--------+--------+
<90 | 61 | 13 | 74
--------+--------+--------+
90-110 | 24 | 54 | 78
--------+--------+--------+
>110 | 5 | 80 | 85
合计 90 147 237
Norow:不要行的百分比
Nocol:不要列的百分比
Nopercent:不要频数的百分比
Nocum:单变量时不要累积频数和累积百分比
Nofreq:不要频数
Noprint:不打印
Nowarn:不输出警告信息
Missing:将缺失值也进行统计
6 对变量加label标识,使输出更直观
proc freq data=Htwt;
tables weight*height/norow nocol nopercent;
format weight weight_ctg.;
format height height_ctg.;
label weight = '高度';
label height = '重量';
run;
结果:
FREQ 过程
weight * height 表
weight(高度) height(重量)
频数 |50-60 |>60 | 合计
--------+--------+--------+
<90 | 61 | 13 | 74
--------+--------+--------+
90-110 | 24 | 54 | 78
--------+--------+--------+
>110 | 5 | 80 | 85
合计 90 147 237
7 By:对这个变量的值进行分页显示
proc freq data=Htwt;
tables weight/norow nocol nopercent;
format weight weight_ctg.;
by sex;
run;
结果(以第一页为例)
----------------- sex=m ------------
FREQ 过程
weight
weight 频数 累积频数
------------------------------
<90 38 38
90-110 35 73
>110 53 126
8 out:输出数据集
proc freq data=Htwt;
tables weight/ out=htwtfreq;
format weight weight_ctg.;
run;
proc print data= htwtfreq;
run;
结果:
Obs weight COUNT PERCENT
1 <90 74 31.2236
2 90-110 78 32.9114
3 >110 85 35.8650
9 order选项:使输出按指定的order方式排序。
Order=data :按输入数据集的顺序排序
Order=formatted :按其formatted value排序
Order=freq :按计算的频数的降序排序
Order=internal :按其unformatted value排序
data htwttmp;
set htwt;
weight=round(weight);
run;
proc freq data=Htwttmp order=freq;
tables weight/ out=htwtfreq ;
run;
proc print data= htwtfreq(obs=10);
run;
结果:
Obs weight COUNT PERCENT
1 112 26 10.9705
2 84 20 8.4388
3 81 7 2.9536
4 85 7 2.9536
5 92 7 2.9536
6 94 7 2.9536
7 95 7 2.9536
8 105 7 2.9536
9 108 7 2.9536
10 114 7 2.9536
10 list当对多个变量进行交叉频率操作,我们只需要频数和百分比时可以用到。
proc freq data=Htwttmp order=freq;
tables sex*weight/list out=htwtfreq ;
format weight weight_ctg.;
run;
proc print data= htwtfreq(obs=10);
run;
结果:
Obs sex weight COUNT PERCENT
1 m >110 53 22.3629
2 m 90-110 35 14.7679
3 m <90 38 16.0338
4 f >110 32 13.5021
5 f 90-110 43 18.1435
6 f <90 36 15.1899
11 对缺失值和非缺失值进行频数统计
data Htwtmissing;
set Htwttmp;
if weight<100 then weight=.;
run;
proc format;
value misscnt .= 'Missing'
other ='Nonmissing';
run;
proc freq data = Htwtmissing;
tables _numeric_ / missing nocum nopercent;
format _numeric_ misscnt.;
run;
结果:
age
age 频数
----------------------
Nonmissing 237
height
height 频数
----------------------
Nonmissing 237
weight
weight 频数
----------------------
Missing 115
Nonmissing 122