楼主: bhzhangkelei
2302 3

[书籍介绍] 希望找到一些关于SAS,proc freq语句的资料。 [推广有奖]

  • 1关注
  • 0粉丝

本科生

22%

还不是VIP/贵宾

-

威望
0
论坛币
39 个
通用积分
1.3500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1045 点
帖子
29
精华
0
在线时间
102 小时
注册时间
2012-12-28
最后登录
2024-1-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
还想问问有哪些检测是可以用这个语句计算的?它还能算哪些统计变量?谢谢各位的帮助!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:freq ROC REQ Fre 资料

沙发
luling2010 发表于 2014-1-21 16:45:37 来自手机 |只看作者 |坛友微信交流群
Google

使用道具

藤椅
牵你↗左手 发表于 2014-1-21 16:50:05 |只看作者 |坛友微信交流群

使用道具

板凳
bakoll 发表于 2015-1-25 13:23:35 |只看作者 |坛友微信交流群
转: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 <options> ;
by variables ;
exact statistic-options < / computation-options> ;
output <OUT= dataset> options ;
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

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-3 10:06