sas系统和数据分析使用列表报告和汇总报告(编辑修改稿)内容摘要:

A的语句比分母为 A*B的语句求出的百分数要大。 我们已经知道,在 TABLE 语句中分类变量都要事先在 CLASS 语句中定义过,但是有一个特殊的分类变量叫 ALL,也称全类变量。 全类变量 ALL 可以直接用在 TABLE 语句中,它仅有一个值,表示所有的子集和及总和,这是一个非常有用的类,常放在表格的最后一行和最后一列计算总和的统计量。 例如下面的语句: 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 12 of 28 TABLE A*X*MEAN ALL*X*MEAN 6. 定义汇总报表的输出格式 汇总报表的输出除 了要构造汇总报表结构和正确地进行描述统计计算外,还应满足用户对输出报表的有关数据和标题的格式要求。 有以下几种定义报表输出格式的方法: ⑴ 当一个分类变量、分析变量或统计量用作操作元素时,可以跟随着等号和标签。 例如,假设原来的 TABLE 语句为: TABLE A*X*MEAN 现在为了修改列标题改为: TABLE A=‘ CLASS’ *X=‘ QUANTITY’ *MEAN=‘ AVERAGE’ 这样,输出的汇总报表中的列标题从原来的“ A”变成“ CLASS”,“ X”变成“ QUANTITY”,“ MEAN”变成“ AVERAGE”。 ⑵ 操作元素还可以进行格式说明,通过 *号连接 FORMAT 或 F=输出格式名。 例如: TABLE A=‘ CLASS’ *f=*X=‘ QUANTITY’ *f=*MEAN=‘ AVERAGE’*f=8. 要注意分类变量 A 这个元素后的输出格式是数字格式 f=,而不是字符格式,因为它说明的是交叉单元中 MEAN 计算的数字结果。 实际上起作用的是最后一个 f=。 ⑶ 使用 KEYLABLE 和 LABEL 语句。 KEYLABLE 语句用于对出现在页、行或列上的统计量名字和 ALL 分类变量名字重新标记。 LABEL 语句用于对出现在页、行或列上的分类变量或分析变量规定标签。 例如: KEYLABEL MEAN=‟AVERAGE‟ ALL=‟TOTAL‟ LABEL A=‟SEX‟ X=‟AMOUNT‟ 要注意 KEYLABLE 和 LABEL 语句中定义的标签,比在 TABLE 语句中变量后跟随着等号和标签的定义方法优先级低。 ⑷ 使用 PROC FORMAT 过程和 FORMAT 语句。 PROC FORMAT 过程用来对字符变量或数值变量定义用户自己的输入输出格式。 FORMAT 语句用于规定分类变量的输出格式。 两者的配合使用可以使分类变量按用户自定义格式输出。 例如: PROC FORMAT; VALUE $SEXFMT A1=‟Female‟ A2=‟Male‟; PROC TABULATE DATA=ABCX; „„ FORMAT A $SEXFMT ; „„ RUN ; $SEXFMT 是用户自定义的输出格式名,注意在使用时要在输出格式名后加一个小圆点。 当分类变量 A 定义为输出格式 $, 在输出的汇总报表中,分类变量 A 原先在行或列标题上输出的是两个分类值 A1 和 A2,现在改为输出 Female 和 Male。 ⑸ 使用 TABLE 语句中选项列表。 如果规定任选项,第一项前必须加斜杆 /。 能够在 TABLE语句中出现很多选项,下面我们列出一些常用的选项:  MISSTEXT=‟文本字符 ‟——报表输出时如果有缺失值,则用 ‟文本字符 ‟替代。  PRINTMISS——要求输出所有可能的行和列,即使某个特殊的行和列交叉单元中40dca2807e07d52dcf97c3bcf0947ed9 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 13 of 28 数据不存在。  FUZZ=数字 ——提供一个数字,让分析变量的值和表单元中 的计算结果与这个数字比较,如果绝对值小于这个数字,看作 0 处理。  RTS=数字 ——提供一个整数,用来规定行标题输出时的左和右边界值。 ⑹ 使用 PROC TABULATE语句中的 FORMAT=输出格式名选项。 对每一个报表单元规定缺省的输出格式,如果没有规定此选项,缺省值是。 此选项主要用于减少报表中输出数值的域宽。 但是如果遇到在 TABLE 语句中规定有任何输出格式,它将被取代。 7. 汇总报表综合举例 假设我们要输出一个数据集 SURVEY 的汇总报表。 按性别 SEX 和全类 ALL 进行 分类,求平均 年龄 AGE、最大的身高 HEIGH、最小的重量 WEIGHT、平均收入 INCOME 和男女人数的百分比 PCTN。 修改大标题和增加一个小标题,并格式化输出表格的行列标记和单元内容。 程序如下: libname study d:\sasdata\mydir。 proc format。 value $sexfmt F=39。 female39。 M=39。 male39。 picture pct low0=39。 %39。 (prefix=39。 39。 ) 0high=39。 %39。 proc tabulate data= formchar=39。 ||+|39。 format=。 class sex。 var age heigh weight ine。 table (SEX ALL), (AGE*mean*f=7. heigh*MAX weight*MIN ine*MEAN pctn*f=pct.) /rts=8。 format sex $sexfmt.。 Keylabel MEAN=Average ALL=Total。 Label ine=39。 Salary39。 Title1 39。 How to use tabulate statement39。 Title2 39。 SUFE 202039。 Run。 程序运行结果 如 图 所示。 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 14 of 28 在调用汇总报表过程 PROC TABULATE 输出报表之前,首先使用 PROC FORMAT 过程定义了一个格式值 $SEXFMT 和一个图示格式 PCT。 定义的 PCT 是一种较常用的百分比格式,其中 low0 表示从最小值 LOW 到不包含 0 的值域, 0high 表示从 0 到最大值的值域,圆括号中的选项 prefix=39。 39。 表示放在该值第一个有效数位前面的一个字符词头(前缀)。 其他 还有像 fill=39。 *39。 填充字符选项也较常用。 汇总报表过程 PROC TABULATE 中,规定分类变量为 SEX,分析变量为 age、 heigh、 weight 和 ine。 在 TABLE 语句中有二维,为清楚起见,一条语句按维定义分二行书写,注意只有一个分号(;)。 行维的表达式和列维表达式之间用逗号(,)分隔。 第十八课 调整分析变量 age、 heigh、 weight 和 ine 的列宽,既可以在 PROC TABULATE语句的选项中设置 format=进行统一调整,也可以在 TABLE 语句中针对 AGE 变量用 f=。 formchar=39。 ||+|39。 选项规定输出表格的垂直和水平分隔线及 9 个角的字符, /rts=8 图 数据集 SURVEY 的汇总报表 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 15 of 28 选项规定左右边界的距离,实际上调整了分类变量 SEX 列的宽度, rts=8的值越大,SEX 列的宽度越小。 或者选择Globals\Options\Global options 命令,在OPTIONS 对话框中修改 LINESIZE 参数的值。 建立 SAS 系统的数据集 (DATA STEP) 用户用 SAS 数据步( DATA STEP)创建一个数据集的方法,与前两种 SAS/ASSIST 和SAS/FSP 创建一个数据集的方法相比, DATA STEP 是一种非交互式的全部编 程实现的方法。 这种方法能把多样的、复杂的外部文件数据格式通过程序语句的控制转换为我们所需的 SAS数据集。 一、 DATA 程序步的三个主要步骤 为了从外部原始数据文件得到 SAS 数据集, DATA程序步的三个主要步骤为:  启动一个数据步,命名将要创建的数据集(使用 DATA 语句)  确定要读入的外部文件(使用 INFILE语句)  描述如何读入每一条记录(使用 INPUT语句) 如果需要在程序中直接嵌入数据,第二步用 CARDS语句代替 INFILE语句。 所对应的一般程序结构如下: Data 所要创建的数据集名。 Infile „读取的外部文件名 ‟ FIRSTOBS=开始读入的行 OBS=结束行。 Input 变量 1 读入模式 变量 2 读入模式 ……。 Run。 此程序结构很容易被错误理解为顺序结构,其实它的内部执行结构是一种循环结构。 如图 所示是它执行过程的程序流程图。 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 16 of 28 PDV( Program Data Vector)称为程序数据向量,它是根据 DATA步中的 INPUT 语句所确定的变量和变量的读入模式来创建的, 假设 INPUT 语句中各变量的长度为 name $18 、sex $12 、 bdate 18 、 age 13 、 height 1 weight 16 、 ine 1 sdate 16 ,所创建的一个 PDV 如下表: name sex bdate age height weight ine sdate 8 2 8 3 6 6 8 6 整个 DATA步程序执行过程中,涉及到:  一个存放外部文件记录的输入缓冲区  一个存放当前观测的 PDV向量  一个外部文件记录指针  一个程序指 针  一个 SAS 数据集观测指针 如图 所示。 YN程序返回 D A T A 步的顶部退出 D A T A 步循环,形成 S A S 数据集开始下一个 D A T A 步或 P R O C 步D A T A 开始,并确定创建数据集名I N P U T 语句将文件下一条记录读入 P D V其它语句可以修改 P D V 中的内容P D V 中值在 D A T A 步底部被写入数据集I N F I L E 语句确定外部原始文件用 I N F I L E 所涉及到变量建立P D V ,并初始化外部文件下一条记录是否为空。 图 执行 DATA 步时的内部循环过程 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 17 of 28 二、 读入模式 确定变量的读入模式共有四种:  column 模式  format。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。