ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:244.98KB ,
资源ID:23556747      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23556747.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SAS系统和数据分析PROC步中的通用语句.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SAS系统和数据分析PROC步中的通用语句.docx

1、SAS系统和数据分析PROC步中的通用语句SAS系统和数据分析PROC步中的通用语句第十六课用在PROC步中的通用语句当我们用DATA步创建好SAS数据集后,可以用SAS的一些PROC过程步来进一步的分析和处理它们。在DATA步中用户可以使用SAS的语句来编写自己的程序,以便能通过读入、处理和描述数据,创建符合自己特殊要求的SAS数据集。而后由一组组PROC步组成的程序进行后续分析和处理。一、PROC程序的主要作用读出已创建好的SAS数据集用数据集中的数据计算统计量将统计的结果按一定形式输出在SAS系统中,计算统计量时,对于许多常用的和标准的统计计算方法,并不需要用户自己编写这些复杂的程序,而

2、是通过过程的名字来调用一个已经为用户编写好的程序。用户通常只要编写调用统计过程前的准备处理程序和输出统计结果后的分析和管理程序。只有用户自己非常特殊的统计计算方法才需要用户自己编写相应的计算程序。二、PROC过程语句PROC语句用在PROC步的开始,并通过过程名来规定我们所要使用的SAS过程,对于更进一步的分析,用户还可以在PROC语句中使用一些任选项,或者附加其他语句及它们的任选项(如BY语句)来对PROC步规定用户所需要分析的更多细节。PROC语句的格式为: PROC 过程名 ;过程名规定用户想使用的SAS过程的名字。例如,我们在前面常使用的打印过程名PRINT,对数值变量计算简单描述统计

3、量的过程名MEANS。选项规定这个过程的一个或几个选项。不同的过程规定的选项是不同的,因此,只有知道具体的过程才能确定具体的选项是什么。但是,在各个不同过程中使用选项时,下面三种选项的使用格式是共同的:KeywordKeyword=数值Keyword=数据集Keyword是关键字,第一种选项格式是某个具体过程进一步要求某个关键字;第二种选项格式是某个具体过程要求某个关键字的值,值可能是数值或字符串;第三种选项格式是某个具体过程要求输入或输出数据集。例如: PROC Print Data=class ;过程Print,作用为打印输出数据集中的数据。选项为Data=class,关键字是Data,进

4、一步说明要打印输出的数据集名为class。如果省略这个选项,将用最近产生的SAS数据集。 PROC Plot Hpct=50 Vpct=33 ;过程Plot,作用为描绘变量的散布图。现有两个表示图形大小的选项为Hpct=50 、Vpct=33,关键字Hpct 和Vpct的值分别表示在水平和垂直方向上占一页中的比例。数值50表示占一页的50%,即全页的一半。 PROC Means Data=class Maxdec=3 CSS ;过程Means,作用为对数值变量计算简单描述统计量。现有三个选项为Data=class 、 Maxdec=3 、CSS 。选项Maxdec=3表示该过程输出结果中,小数

5、部分的最大位数为3。选项CSS,是单个关键字,指出MEANS过程选用的计算统计量的方法,在MEANS过程中共有几十种计算统计量方法,CSS表示计算均值偏差的加权平方和。三、用在PROC步的通用语句能够出现在PROC步的SAS语句主要分成:过程信息语句、变量属性语句可用在任何地方的全局语句下面我们列出语句是PROC过程中最常用的一些通用语句,还有很多其他语句对不同的过程是专用的。1.VAR语句(变量语句)VAR语句可用在不同的SAS过程中,被用来给出要分析的变量。该语句的格式为: VAR 变量列表 ;变量列表给出过程将要分析的数据集中的一些变量。变量列表的任意有效形式都是可以使用的。通常VAR语

6、句是放在过程的开始处。另外,VAR语句中的变量顺序,也是将来输出结果时的变量顺序。2.MODEL语句(模型语句)MODEL语句可用在不同的SAS统计过程中,被用来规定分析的模型。尽管MODEL语句的具体语句形式依赖于使用的具体过程,但MODEL语句的一般使用格式为: MODEL 因变量列表=自变量列表 ;MODEL语句在使用时,要说明哪些变量是因变量,哪些变量是自变量。另外,不要把“=”号看作是等号或赋值号的作用。例如:Model y=x1-x5 ;自变量为x1、x2、x3、x4、x5,因变量为y。Model y1 y2= a b c d 自变量为a、b、c、d,因变量有两个y1和y2。3.W

7、EIGHT语句(权数语句)WEIGHT语句可用在不同的SAS过程中,用来规定一个变量,它的值是这些观测相应的权数。该语句的格式为: WEIGHT 变量 ;WEIGHT语句常常用在这样一些分析中,比如与每个观测有联系的方差不等时,那么可引入一个权数变量,其值和方差的倒数成比例。4.FREQ语句(频数语句)FREQ语句可用在不同的SAS过程中,用来规定一个变量,它的值表示这个观测出现的频数。该语句的格式为: FREQ 变量 ;如果在某个观测中,FREQ变量的值小于1,这个观测在分析中不使用;如果FREQ变量的值不是整数,仅取整数部分使用。注意FREQ语句和WEIGHT语句的区别。FREQ变量表示观

8、测出现的次数;WEIGHT变量给出观测相应的权数。当每个观测的权数都是整数时,WEIGHT语句也可用FREQ语句代替。5.ID语句ID语句可用在不同的SAS过程中,用来规定一个或几个变量,它们的值在打印输出或这个过程产生的SAS数据集中用来识别观测。该语句的格式为: ID 变量列表 ;使用了ID语句后,最左边的OBS列被取消了,且ID语句所指定的变量被排列在输出结果报告的最左边。例如,当一个ID语句同PRINT过程一起使用时,输出的观测用ID变量的值来识别,而观测本来的序号没有被打印输出。6.CLASS语句CLASS语句可用在不同的SAS过程中,用来指定一些分类变量,SAS过程按分类变量的不同

9、值分别进行分析处理。该语句的格式为: CLASS 变量列表 ;例如,我们要按男女分类统计SURVEY数据集中收入INCOME的平均值。程序如下:Libname Study d:sasdatamydir ;Proc Means Data=Study.Survey ; Class Sex ; Var Income ;Title “How to use CLASS statement”Run ;程序运行结果如图16.1所示。图16.1 在PROC过程中使用CLASS语句分类计算分析SEX7.BY语句当用户要求SAS系统对数据集进行分组处理时,可在PROC步中使用BY语句。但处理过程要求数据集事先已经

10、按BY变量排序好了。该语句的一般格式为:BY 变量1 ;DESCENDING选项表示它后面的一个变量按降序排列。要特别注意BY后面的变量排列的先后次序,表示分组的的先后次序。例如,有一个关于通讯录的数据集,我们要按居住的城市(City)降序排列,同一城市中按邮编(Zipcode)的升序排列。BY语句的使用格式为:BY descending City ZipcodeNOTSORTED选项并不是说数据不要求排序,而是要求数据按组整理,并且这些组不必按字母顺序或数值的顺序排序。但如果要处理的数据集事先没有按BY变量的升序排序,可使用如下几种方法先处理一下数据集:在SORT过程中用相同的BY语句对观测

11、进行排序用Base SAS软件中DATASETS过程对BY变量生成一个索引在PROC调用过程的BY语句中使用NOTSORTED例如,我们有一个没有按任何变量排序过的SURVEY03数据集,现在要想按男女分组显示观测的NAME和INCOME变量的内容。程序如下:Libname Study d:sasdatamydir ;Proc Sort Data=Study.Survey03 ;By Sex ;Proc Print DATA=Study.Survey03 ;Proc Print DATA=Study.Survey03 ; By Sex ; Var Name Income ; Id Sex ;R

12、un ;程序运行结果如图16.2所示。图16.2 在PROC过程中使用BY语句分组计算分析SEX第十七课CLASS语句与BY语句是有所区别的。CLASS语句使用时,不要求数据集事先按CLASS指定的变量排序,按指定变量的不同值进行分类计算和分析后,输出的分类结果列在一张报表里。而BY语句在使用时,要求数据集事先按BY指定的变量排序,且输出的结果也按分组列出许多报表。使用列表报告PROC PRINT和汇总报告PROC TABULATE利用SAS系统提供的各种过程可以制作各种风格的报表。一份好的输出报表可以使用户更直观、更清楚和更容易地了解和明白统计计算的结果,因此如何制作一个能充分揭示运算结果信

13、息和满足要求的报告,也是非常重要的。SAS系统提供的各种制作报表的过程中,最常用的是以下两种:列表报告PROC PRINT过程汇总报告PROC TABULATE过程一、列表报告PROC PRINT过程所谓列表报告PROC PRINT过程,将输出SAS数据集中的数值,输出时把数据集中的每一个变量形成输出报表的列,而每一个观测形成输出报表的一行。1.PROC PRINT过程的主要功能PROC PRINT过程输出的数据列表具体地说主要能够做到以下几点:变量的输出格式用户可以选择(Format语句)可在输出报表中加上标题(Title)和脚注(Footnotes语句)可输出数据集中变量的任何子集(Whe

14、re语句)可以控制变量是否出现以及出现的顺序(Var语句)用户可以自己订制列表头(Label语句)可分组输出观测数据(By语句)可计算所有观测值或分组观测值的总和(Sum/Sumby语句)及其他统计量每页报表的宽度和长度以及每列的宽度都可控制(选项Width=)当数据集中变量太多时,可分成几部分输出(选项Rows=)2.PROC PRINT过程语句格式在PROC PRINT过程中,常常配合使用了许多其他SAS语句以达到所要求的输出报表格式,我们把在PROC PRINT过程中常用的一些语句的基本使用格式列出,具体使用时根据需要可能使用其中的几条语句。如下所示: PROC PRINT ;VAR 变

15、量列表 ;ID 变量列表 ;BY 变量列表 ;PAGEBY 变量;SUMBY 变量;SUM 变量列表 ;TITLEn “标题内容”;FOOTNOTEn “标题内容”;LABEL 变量1=“标签*内容” 变量2=“标签*内容” ;FORMAT 变量输出格式 ;WHERE 条件表达式 ;Run ;3.PROC PRINT的选项PROC PRINT的选项列表包含许多选项,选项之间以空格分隔,选项没有先后次序。我们下面列出一些主要选项:DATA=数据集名给出要打印输出的SAS数据集。如果省略,则为最近建立的SAS数据集。N要求在输出这个数据集的数据列表之后,同时输出观测的总输出条数。如果使用了BY分组

16、语句,在每一个分组后输出各个分组输出观测的条数。LABEL或L使用变量的标签作为输出数据列表中每列的抬头。如果变量没有定义标签,则用变量名作为列抬头。SPLIT或S=分隔符规定一个字符(如*号或#号)用于将较长的标签分隔成几行。在这个选项里定义了某个分隔符以后,过程中的LABEL语句里就可以使用这个分隔符了。另外,选项SPLIT=和LABEL不必同时使用。NOOBS不输出观测数据的序号。当不用ID语句且又不要输出观测的序号时,可使用该选项。DOUBLE或D要求输出隔行打印。ROUND或R对用FORMAT语句规定变量的输出格式中的小数点位进行四舍五入。HEADING=H或V规定打印列抬头的方向。

17、H或HORIZONTAL表示所有列抬头水平打印,V或VERTICAL表示所有列抬头垂直打印。WIDTH=FULL或MIN或U或UBY规定使用什么作为列宽。FULL表示使用变量格式化宽度,MIN或MINIMUM表示使用可能的最小列宽,U或UNIFORM表示对所有页一致地使用变量格式化宽度,UBY或UNIFORMBY表示在BY组内对所有页一致地使用变量格式化宽度。ROWS=PAGE当数据集包含很多变量和观测时,使用此选项将在每一页中打印尽可能多的观测,能减少输出页数。VAR语句、ID语句和BY语句我们前面已经说明过了,这里不再重复。PAGEBY语句要求和BY语句一起使用,当PAGEBY变量的值改变

18、或者在BY语句中列在PAGEBY变量前的BY变量值改变时,PRINT过程将从新的一页开始输出。SUM语句规定计算总和的变量,SUM语句中规定的变量可以没有列在VAR语句中,PRINT过程将自动把SUM语句中规定的变量加到VAR变量列表中。SUMBY语句必须和BY语句连用,用来对一部分BY组中指定的变量求和。每当SUMBY变量的值变化或者BY语句中列在SUMBY变量前的变量值改变时,PRINT将把对应BY组中的SUM语句中的变量求和。如果没有规定SUM语句,则将对数据集中BY变量以外的所有数值变量求和。SUMBY语句的本质是通过指定BY变量列表中变量位置而限制BY组中SUM变量求和。4.举例例如

19、,我们要输出SURVEY数据集的报表。报表之一的要求是:选择输出身高小于1.75米的观测,同时给出满足条件的总输出条数,自定义要显示的变量和顺序,不显示观测的序号,求和INCOME变量的值,修改BDATE变量和INCOME变量输出格式,且修改它们的列标题并分两行显示,加两个标题和一个脚注。程序如下:LIBNAME STUDY “D:SASDATAMYDIR”;PROC PRINT data=study.survey noobs n split=* round width=min ;VAR name sex income bdate heigh weight ;SUM income ;TITLE

20、1 “PROCEDURE PRINT”;TITLE2 “Dept.of Information System”;FOOTNOTE1 “SHANGHAI UNIVERSITY OF FINANCE AND ECONOMICS”;LABEL Bdate=Date of*Brithday Income=Total*Income ;FORMAT Bdate DATE7. Income dollar12.2 ;WHERE heigh=1.75 ;Run ;程序运行结果如图17.1所示。图17.1 用PROC PRINT过程输出的SURVEY数据集报表之一脚注显示在一页的最下方,通常一页的长度要大于窗口的

21、长度,所以有时正文和脚注的内容并不一定能同时显示在OUTPUT窗口中。我们可以用Globals/Options/Global options命令,调出Options对话单,修改页尺寸PAGESIZE参数为17行,然后选择Options/Save settings now命令保存当前的设置。报表之二的要求是:修改报表一,按SEX变量中的值M和F进行分组求和(用BY语句),同时将分组值M和F列在分组报告的最左边(用ID语句)。要分组求和,指定数据集中的分组变量值必须事先已经按升序排序好了,如果没有排序过,常常先用SORT过程对分组变量进行排序。去掉脚注。程序如下:LIBNAME STUDY “D:

22、SASDATAMYDIR”;PROC SORT Data=study.survey out=study.bysex ; By sex ;PROC PRINT data=study.bysex noobs n split=* round width=min ;VAR name income bdate heigh weight ;ID sex ; BY sex ; SUM income ;TITLE1 “PROCEDURE PRINT”;TITLE2 “Dept.of Information System”;FOOTNOTE1 ;LABEL Bdate=Date of*Brithday Inco

23、me=Total*Income ;FORMAT Bdate DATE7. Income dollar12.2 ;WHERE heigh=1.75 ;Run ;程序运行结果如图17.2所示。图17.2 用PROC PRINT过程输出的分组求和报表之二在使用了TITLE和FOOTNOTE语句后,所定义的标题和脚注将一直保持有效,直到另一个TITILE或FOOTNOTE语句被执行。我们在程序中用不带任何内容的FOOTNOTE1语句替代原先同样号码的脚注,实际上它能取消拥有更大号码的脚注。二、汇总报告PROC TABULATE过程当一个SAS数据集包含不太多的数据时,列表报告可以很好地描述数据,但是当

24、数据集包含大量信息时,就需要使用汇总报告了。PROC TABULATE用分类报表的形式输出满足用户要求的描述性统计量。每一个表单元属于用交叉变量名组成的特殊观测类。与每一个单元有关的统计量是由该类所有观测值计算得到的。在通常情况下,产生汇总报表要先将数据根据需要进行分类,然后在分类的基础上计算一些统计量。1.PROC TABULATE过程的三要素一个最简单的PROC TABULATE过程必须定义下列三要素:类变量可以是数值型变量或字符型变量。分类的目的是为了在每一个类上进行计算和分析。分析变量一定是数值型变量。可以计算的一些统计量如:频数(frequency)、均值(mean)、标准差(sta

25、ndard deviation)、最小值(minimum)、最大值(maximum)、极差(range)、总和(sum)、百分数(percentages)等。表的结构和格式最多可以定义三个维度:第一维定义列,第二维定义行,第三维定义页。并且可以通过TABLE语句中的表达式计算统计量,用操作符,如:逗号、空格、星号、圆括号等,来组织单元集合。另外,还能格式化单元中的数据值和产生用户化的行标题和列标题。2.PROC TABULATE语句格式在PROC TABULATE过程中,常常使用一些控制汇总报表产生的语句,一般过程形式如下:PROC TABULATE ;CLASS 分类变量列表 ;VAR 分析

26、变量列表 ;TABLE 行表达式,列表达式 ;LABEL 变量1=“标签*内容” 变量2=“标签*内容” ;KEYLABEL 统计量名字1=“标记1” 统计量名字2=“标记2” ;FORMAT 变量输出格式 ;WHERE 条件表达式 ;Run ;PROC TABULATE语句总是伴随着至少一个TABLE语句来规定如何制表。用在TABLE语句的分类变量必须用CLASS语句说明。用在TABLE语句的分析变量必须用VAR语句说明。同时出现在CLASS语句和VAR语句中的变量,只能作为分类变量使用。CLASS、VAR和TABLE语句是构成PROC TABULATE过程最基本的三条语句。3.PROC T

27、ABULATE的选项PROC TABULATE的选项列表包含许多选项,选项之间以空格分隔,几个主要的选项说明如下:DATA=数据集名给出要制表输出的SAS数据集。如果省略,则为最近建立的SAS数据集。NOSEPS要求在表体中不出现水平分隔线。FORMCHAR=字符串规定用来构造报表轮廓和分隔线的字符。字符串为11个制表字符,用来定义画垂直和水平线的2个字符,及画9个角字符:左上、中上、右上、左中、中中(交叉)、右中、左下、中下、右下。缺省值是FORMCHAR=|-|+|-。如果要改变边角线,例如想把4个角换成*,则可使用FORMCHAR(3 5 9 11)=* * * *,如果FORMCHAR

28、=选项赋了11个空格,则生成没有边框和分隔线的报表。MISSING要求把丢失值作为分类变量的有效水平。即汇总时包含分类变量中有丢失值的观测。4.TABLE语句的使用和输出表格结构如何正确地理解和使用TABLE语句是掌握PROC TABULATE过程的关键所在。汇总报表输出的表格形状和所计算的统计量都是由TABLE语句中的表达式决定的,这个表达式中包含元素和操作符。元素指分类变量、分析变量和统计量,当表达式包含多个元素时,需要用操作符把它们连接起来。使用不同的操作符连接会产生不同的表格形状。下面列出一些主要的操作符及其作用:TABLE表达式中的操作符作用逗号 ,转另一维空格 表格并排连接星号 *

29、交叉组合分组圆括号 ( )分组或规定次序为了便于理解TABLE表达式中操作符的作用,我们举一个假设的例子来说明。有SAS数据集ABCX,其中有四个变量A、B、C和X,变量A、B、C我们将在PROX TABULATE过程中用CLASS语句定义为分类变量,我们可以理解为它是一个产品的大类A、中类B和小类C。而X变量是一个数值型变量,用VAR定义为分析变量,我们可以理解为它是一个产品的销售数量或收入金额或价格等。假设的数据集ABCX可能的数据值如下表所示:变量名TABLE中的变量类型可能的数据值A分类变量A1,A2B分类变量B1,B2C分类变量C1,C2,C3X分析变量111223ABCX数据集中的

30、具体观测值见下表所示:OBSABCX1A1B1C11112A1B1C21123A1B1C31134A1B2C11215A1B2C21226A1B2C31237A2B1C12118A2B1C22129A2B1C321310A2B2C122111A2B2C222212A2B2C3223下面我们给出分析变量X和分类变量A、B、C组成的有效表达式的输出报表格式。例1:TABLE表达式中只有一个分类变量A,既没有规定分析变量,也没有指明统计量,则缺省的统计量为频数N,即分类变量值的交叉频数。程序和输出汇总报表形式如下所示:Proc tabulate Data=ABCX ;Class A ;Var X ;Table A ;Run ;AA1A2

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1