SAS讲义_第十七课使用列表报告PROC_PRINT和汇总报告PROC_TABULATE.doc
《SAS讲义_第十七课使用列表报告PROC_PRINT和汇总报告PROC_TABULATE.doc》由会员分享,可在线阅读,更多相关《SAS讲义_第十七课使用列表报告PROC_PRINT和汇总报告PROC_TABULATE.doc(14页珍藏版)》请在三一文库上搜索。
1、第十七课 使用列表报告PROC PRINT和汇总报告PROC TABULATE利用SAS系统提供的各种过程可以制作各种风格的报表。一份好的输出报表可以使用户更直观、更清楚和更容易地了解和明白统计计算的结果,因此如何制作一个能充分揭示运算结果信息和满足要求的报告,也是非常重要的。SAS系统提供的各种制作报表过程中,最常用的是以下两种:l 列表报告PROC PRINT过程l 汇总报告PROC TABULATE过程一. 列表报告PROC PRINT过程所谓列表报告PROC PRINT过程,将输出SAS数据集中的数值,输出时把数据集中的每一个变量形成输出报表的列,而每一个观测形成输出报表的一行。1 P
2、ROC PRINT过程的主要功能PROC PRINT过程输出的数据列表具体地说主要能够做到以下几点:l 变量的输出格式用户可以选择(Format语句)l 可在输出报表中加上标题(Title)和脚注(Footnotes语句)l 可输出数据集中变量的任何子集(Where语句)l 可以控制变量是否出现以及出现的顺序(Var语句)l 用户可以自己定制列表头(Label语句)l 可分组输出观测数据(By语句)l 可计算所有观测值或分组观测值的总和(Sum/Sumby语句)及其它统计量l 每页报表的宽度和长度以及每列的宽度都可控制(选项Width=)l 当数据集中变量太多时,可分成几部分输出(选项Rows
3、=)2 PROC PRINT过程语句格式在PROC PRINT过程中,常常配合使用了许多其它SAS语句以达到所要求的输出报表格式,我们把在PROC PRINT过程中常用的一些语句的基本使用格式列出,具体使用时根据需要可能使用其中的几条语句。如下所示: PROC PRINT ;VAR 变量列表 ;ID 变量列表 ;BY 变量列表 ;PAGEBY 变量;SUMBY 变量;SUM 变量列表 ;TITLEn “标题内容”;FOOTNOTEn “标题内容”;LABEL 变量1=“标签*内容” 变量2=“标签*内容” ;FORMAT 变量输出格式 ;WHERE 条件表达式 ;Run ;3 PROC PRI
4、NT的选项PROC PRINT的选项列表包含许多选项,选项之间以空格分隔,选项没有先后次序。我们下面列出一些主要选项:l DATA=数据集名给出要打印输出的SAS数据集。如果省略,则为最近建立的SAS数据集。l N要求在输出这个数据集的数据列表之后,同时输出观测的总输出条数。如果使用了BY分组语句,在每一个分组后输出各个分组输出观测的条数。l LABEL或L使用变量的标签作为输出数据列表中每列的抬头。如果变量没有定义标签,则用变量名作为列抬头。l SPLIT或S=分隔符规定一个字符(如*号或#号)用于将较长的标签分隔成几行。在这个选项里定义了某个分隔符以后,过程中的LABEL语句里就可以使用这
5、个分隔符了。另外选项SPLIT=和LABEL不必同时使用。l NOOBS不输出观测数据的序号。当不用ID语句且又不要输出观测的序号时,可使用该选项。l DOUBLE或D要求输出隔行打印。l ROUND或R对用FORMAT语句规定变量的输出格式中的小数点位进行四舍五入。l HEADING=H或V规定打印列抬头的方向。H或HORIZONTAL表示所有列抬头水平打印,V或VERTICAL表示所有列抬头垂直打印。l WIDTH=FULL或MIN或U或UBY规定使用什么作为列宽。FULL表示使用变量格式化宽度,MIN或MINIMUM表示使用可能的最小列宽,U或UNIFORM表示对所有页一致地使用变量格式
6、化宽度,UBY或UNIFORMBY表示在BY组内对所有页一致地使用变量格式化宽度。l ROWS=PAGE当数据集包含很多变量和观测时,使用此选项将在每一页中打印尽可能多的观测,能减少输出页数。VAR语句、ID语句和BY语句我们前面已经说明过了,这里不再重复。PAGEBY语句要求和BY语句一起使用,当PAGEBY变量的值改变或者在BY语句中列在PAGEBY变量前的BY变量值改变时,PRINT过程将从新的一页开始输出。SUM语句规定计算总和的变量,SUM语句中规定的变量可以没有列在VAR语句中,PRINT过程将自动把SUM语句中规定的变量加到VAR变量列表中。SUMBY语句必须和BY语句连用,用来
7、对一部分BY组中指定的变量求和。每当SUMBY变量的值变化或者BY语句中列在SUMBY变量前的变量值改变时,PRINT将把对应BY组中的SUM语句中的变量求和。如果没有规定SUM语句,则将对数据集中BY变量以外的所有数值变量求和。SUMBY语句的本质是通过指定BY变量列表中变量位置而限制BY组中SUM变量求和。4 举例例如,我们要输出SURVEY数据集的报表。报表之一的要求是:选择输出身高小于1.75米的观测,同时给出满足条件的总输出条数,自定义要显示的变量和顺序,不显示观测的序号,求和INCOME变量的值,修改BDATE变量和INCOME变量输出格式,且修改它们的列标题并分两行显示,加两个标
8、题和一个脚注。程序如下:LIBNAME STUDY “D:SASDATAMYDIR”;PROC PRINT data=study.survey noobs n split=* round width=min ;VAR name sex income bdate heigh weight ;SUM income ;TITLE1 “PROCEDURE PRINT”;TITLE2 “Dept.of Information System”;FOOTNOTE1 “SHANGHAI UNIVERSITY OF FINANCE AND ECONOMICS”;LABEL Bdate=Date of*Brith
9、day Income=Total*Income ;FORMAT Bdate DATE7. Income dollar12.2 ;WHERE heigh=1.75 ;Run ;程序运行结果见图171所示。图171 用PROC PRINT过程输出的SURVEY数据集报表之一脚注显示在一页的最下方,通常一页的长度要大于窗口的长度,所以有时正文和脚注的内容并不一定能同时显示在OUTPUT窗口中。我们可以用Globals/Options/Global options命令,调出Options对话单,修改页尺寸PAGESIZE参数为17行,然后选择Options/Save settings now命令保存当
10、前的设置。报表之二的要求是:修改报表一,按SEX变量中的值M和F进行分组求和(用BY语句),同时将分组值M和F列在分组报告的最左边(用ID语句)。要分组求和,指定数据集中的分组变量值必须事先已经按升序排序好了,如果没有排序过,常常先用SORT过程对分组变量进行排序。去掉脚注。程序如下:LIBNAME STUDY “D:SASDATAMYDIR”;PROC SORT Data=study.survey out=study.bysex ; By sex ;PROC PRINT data=study.bysex noobs n split=* round width=min ;VAR name in
11、come bdate heigh weight ;ID sex ; BY sex ; SUM income ;TITLE1 “PROCEDURE PRINT”;TITLE2 “Dept.of Information System”;FOOTNOTE1 ;LABEL Bdate=Date of*Brithday Income=Total*Income ;FORMAT Bdate DATE7. Income dollar12.2 ;WHERE heigh=1.75 ;Run ;程序运行结果见图172所示:图172 用PROC PRINT过程输出的分组求和报表之二在使用了TITLE和FOOTNOTE
12、语句后,所定义的标题和脚注将一直保持有效,直到另一个TITILE或FOOTNOTE语句被执行。我们在程序中用不带任何内容的FOOTNOTE1语句替代原先同样号码的脚注,实际上它能取消拥有更大号码的脚注。二. 汇总报告PROC TABULATE过程当一个SAS数据集包含不太多的数据时,列表报告可以很好地描述数据,但是当数据集包含大量信息时,就需要使用汇总报告了。PROC TABULATE用分类报表的形式输出满足用户要求的描述性统计量。每一个表单元属于用交叉变量名组成的特殊观测类。与每一个单元有关的统计量是由该类所有观测值计算得到的。在通常情况下,产生汇总报表要先将数据根据需要进行分类,然后在分类
13、的基础上计算一些统计量。1 PROC TABULATE过程的三要素一个最简单的PROC TABULATE过程必须定义下列三要素:l 类变量可以是数值型变量或字符型变量。分类的目的是为了在每一个类上进行计算和分析。l 分析变量一定是数值型变量。可以计算的一些统计量如:频数(frequency)、均值(mean)、标准差(standard deviation)、最小值(minimum)、最大值(maximum)、极差(range)、总和(sum)、百分数(percentages)等。l 表的结构和格式最多可以定义三个维度:第一维定义列,第二维定义行,第三维定义页。并且可以通过TABLE语句中的表达
14、式计算统计量,用操作符,如:逗号、空格、星号、圆括号等,来组织单元集合。另外还能格式化单元中的数据值和产生用户化的行标题和列标题。2 PROC TABULATE语句格式在PROC TABULATE过程中,常常使用一些控制汇总报表产生的语句,一般过程形式如下:PROC TABULATE ;CLASS 分类变量列表 ;VAR 分析变量列表 ;TABLE 行表达式,列表达式 ;LABEL 变量1=“标签*内容” 变量2=“标签*内容” ;KEYLABEL 统计量名字1=“标记1” 统计量名字2=“标记2” ;FORMAT 变量输出格式 ;WHERE 条件表达式 ;Run ;PROC TABULATE
15、语句总是伴随着至少一个TABLE语句来规定如何制表。用在TABLE语句的分类变量必须用CLASS语句说明。用在TABLE语句的分析变量必须用VAR语句说明。同时出现在CLASS语句和VAR语句中的变量,只能作为分类变量使用。CLASS、VAR和TABLE语句是构成PROC TABULATE过程最基本的三条语句。3 PROC TABULATE的选项PROC TABULATE的选项列表包含许多选项,选项之间以空格分隔,几个主要的选项说明如下:l DATA=数据集名给出要制表输出的SAS数据集。如果省略,则为最近建立的SAS数据集。l NOSEPS要求在表体中不出现水平分隔线。l FORMCHAR=
16、字符串规定用来构造报表轮廓和分隔线的字符。字符串为11个制表字符,用来定义画垂直和水平线的2个字符,及画9个角字符:左上、中上、右上、左中、中中(交叉)、右中、左下、中下、右下。缺省值是FORMCHAR=|-|+|-。如果要改变边角线,例如想把4个角换成*,则可使用FORMCHAR(3 5 9 11)=* * * *,如果FORMCHAR=选项赋了11个空格,则生成没有边框和分隔线的报表。l MISSING要求把丢失值作为分类变量的有效水平。即汇总时包含分类变量中有丢失值的观测。4 TABLE语句的使用和输出表格结构如何正确地理解和使用TABLE语句是掌握PROC TABULATE过程的关键所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 讲义 第十七 使用 列表 报告 PROC_PRINT 汇总 PROC_TABULATE
链接地址:https://www.31doc.com/p-6178694.html