《【精品】sas软件教程精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】sas软件教程精品ppt课件.ppt(118页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、sas软件教程一、概述SAS系统全称为StatisticsAnalysisSystem,最早由北卡罗来纳大学的两位生物统计学研究生编制,并于1976年成立了SAS软件研究所,正式推出了SAS软件。SAS是用于决策支持的大型集成信息系统,但该软件系统最早的功能限于统计分析,至今,统计分析功能也仍是它的重要组成部分和核心功能。SAS现在的版本为9.0版,大小约为1G。经过多年的发展,SAS已被全世界120多个国家和地区的近三万家机构所采用,直接用户则超过三百万人,遍三万家机构所采用,直接用户则超过三百万人,遍及金融、医药卫生、生产、运输、通讯、政府和教及金融、医药卫生、生产、运输、通讯、政府和教育
2、科研等领域。在英美等国,能熟练使用育科研等领域。在英美等国,能熟练使用SASSAS进行进行统计分析是许多公司和科研机构选材的条件之一。统计分析是许多公司和科研机构选材的条件之一。在数据处理和统计分析领域,在数据处理和统计分析领域,SASSAS系统被誉为国际系统被誉为国际上的标准软件系统,并在上的标准软件系统,并在96969797年度被评选为建立年度被评选为建立数据库的首选产品。堪称统计软件界的巨无霸。在数据库的首选产品。堪称统计软件界的巨无霸。在此仅举一例如下:在以苛刻严格著称于世的美国此仅举一例如下:在以苛刻严格著称于世的美国FDAFDA新药审批程序中,新药试验结果的统计分析规新药审批程序中
3、,新药试验结果的统计分析规定只能用定只能用SASSAS进行,其他软件的计算结果一律无效!进行,其他软件的计算结果一律无效!哪怕只是简单的均数和标准差也不行!由此可见哪怕只是简单的均数和标准差也不行!由此可见SASSAS的权威地位。的权威地位。SASSAS系统是一个组合软件系统,它由多个功能模块系统是一个组合软件系统,它由多个功能模块组合而成,其基本部分是组合而成,其基本部分是BASESASBASESAS模块。模块。BASEBASESASSAS模块是模块是SASSAS系统的核心,承担着主要的数据管系统的核心,承担着主要的数据管理任务,并管理用户使用环境,进行用户语言的处理任务,并管理用户使用环境
4、,进行用户语言的处理,调用其他理,调用其他SASSAS模块和产品。也就是说,模块和产品。也就是说,SASSAS系系统的运行,首先必须启动统的运行,首先必须启动BASESASBASESAS模块,它除了模块,它除了本身所具有数据管理、程序设计及描述统计计算功本身所具有数据管理、程序设计及描述统计计算功能以外,还是能以外,还是SASSAS系统的中央调度室。它除可单独系统的中央调度室。它除可单独存在外,也可与其他产品或模块共同构成一个完整存在外,也可与其他产品或模块共同构成一个完整的系统。各模块的安装及更新都可通过其安装程序的系统。各模块的安装及更新都可通过其安装程序非常方便地进行。非常方便地进行。S
5、ASSAS系统具有灵活的功能扩展接口和强大的功能模系统具有灵活的功能扩展接口和强大的功能模块,在块,在BASESASBASESAS的基础上,还可以增加如下不同的基础上,还可以增加如下不同的模块而增加不同的功能:的模块而增加不同的功能:SAS/STATSAS/STAT(统计分析(统计分析模块)、模块)、SAS/GRAPHSAS/GRAPH(绘图模块)、(绘图模块)、SAS/QCSAS/QC(质量控制模块)、(质量控制模块)、SAS/ETSSAS/ETS(经济计量学和时间(经济计量学和时间序列分析模块)、序列分析模块)、SAS/ORSAS/OR(运筹学模块)、(运筹学模块)、SAS/IMLSAS/
6、IML(交互式矩阵程序设计语言模块)、(交互式矩阵程序设计语言模块)、SAS/FSPSAS/FSP(快速数据处理的交互式菜单系统模块)、(快速数据处理的交互式菜单系统模块)、SAS/AFSAS/AF(交互式全屏幕软件应用系统模块)等等。(交互式全屏幕软件应用系统模块)等等。SASSAS有一个智能型绘图系统,不仅能绘各种统计图,有一个智能型绘图系统,不仅能绘各种统计图,还能绘出地图。还能绘出地图。SASSAS提供多个统计过程,每个过程提供多个统计过程,每个过程均含有极丰富的任选项。用户还可以通过对数据集均含有极丰富的任选项。用户还可以通过对数据集的一连串加工,实现更为复杂的统计分析。此外,的一连
7、串加工,实现更为复杂的统计分析。此外,SASSAS还提供了各类概率分析函数、分位数函数、样还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,使用户能方便地实本统计函数和随机数生成函数,使用户能方便地实现特殊统计要求。现特殊统计要求。启动后,出现如图的SAS运行界面,术语称为SAS工作空间(SASApplicationWorkSpace)。它象其它Windows应用程序一样,在一个主窗口内,包含若干个子窗口,并有菜单条、工具栏、状态栏等。SAS有三个最重要的子窗口:程序窗口(PROGRAMEDITOR)、运行记录窗口(LOG)、输出窗口(OUTPUT)。ProgramEdito
8、r的窗口(窗口标签为Editor)就是用来输入SAS语句的,编程操作的所有内容都是在该窗口内完成的,各位还是要跟它先多熟悉一下。简单运行样例简单运行样例假设我们有一个班学生的数学成绩和语文成绩,数学满分为100,语文满分为120,希望计算学生的平均分数(按百分制)并按此排名,可以在程序窗口输入此程序:title0401title0401班学生成绩排名班学生成绩排名;datac0401;datac0401;inputname$1-10sex$mathchinese;inputname$1-10sex$mathchinese;avg=math*0.5+chinese/120*100*0.5;avg
9、=math*0.5+chinese/120*100*0.5;cards;cards;李明李明男男92989298张红艺张红艺女女8910689106王思明王思明男男86908690张聪张聪男男9810998109刘颍刘颍女女8011080110;run;run;procprint;run;procprint;run;procsortdata=c0401;procsortdata=c0401;bydescendingavg;bydescendingavg;run;run;procprint;run;procprint;run;实际上,上述程序是文本,完全可以在任何文本编实际上,上述程序是文本,完
10、全可以在任何文本编辑工具中输入,比如辑工具中输入,比如WindowsWindows中的记事本,甚至中的记事本,甚至WordWord也可用来输入这样包含中文的程序。输入后使也可用来输入这样包含中文的程序。输入后使用复制复制、粘贴命令将输入的程序粘贴到用复制复制、粘贴命令将输入的程序粘贴到SASSAS系系统程序窗口。(即在记事本中复制输入的程序,然统程序窗口。(即在记事本中复制输入的程序,然后在后在SASSAS系统程序窗口中使用粘贴命令,把程序复系统程序窗口中使用粘贴命令,把程序复制到制到SASSAS中)。中)。要运行此程序,只要用鼠标单击工具栏的提交要运行此程序,只要用鼠标单击工具栏的提交(Su
11、bmitSubmit)图标)图标,或用,或用RunRun菜单下的菜单下的SubmitSubmit命令,命令,或者直接按下或者直接按下F8F8键,就可运行程序。如果选中某一键,就可运行程序。如果选中某一段程序,然后进行调用,则系统只执行被选中的部段程序,然后进行调用,则系统只执行被选中的部分。分。运行后,输出窗口出现如下结果:运行后,输出窗口出现如下结果:04010401班学生成绩排名班学生成绩排名111:40Saturday,111:40Saturday,November10,2004November10,2004ObsnamesexmathchineseavgObsnamesexmathch
12、ineseavg11李明李明男男929886.8333929886.833322张红艺张红艺女女8910688.66678910688.666733王思明王思明男男869080.5000869080.500044张聪张聪男男9810994.41679810994.416755刘颍刘颍女女8011085.83338011085.8333运行记录窗口则记录每段程序的运行情况、所用时间、运行记录窗口则记录每段程序的运行情况、所用时间、生成数据保存情况。如果有错误还会用红色指示错生成数据保存情况。如果有错误还会用红色指示错误。误。三、三、SAS程序的使用常识程序的使用常识从上面的例子程序可以看出从上面
13、的例子程序可以看出SASSAS程序的一些特点。程序的一些特点。SASSAS程序的基本结构程序的基本结构SASSAS程序由程序由语句语句组成,语句用组成,语句用分号分号结束。语句结束。语句一般由特定的一般由特定的关键词关键词开始,语句中可包含变量名、开始,语句中可包含变量名、运算符等,它们以运算符等,它们以空格分隔空格分隔。SASSAS对语句所占的行对语句所占的行数无限制,一个语句可占多行,同样,多个语句也数无限制,一个语句可占多行,同样,多个语句也可占一行。可占一行。SAS程序的程序组成SAS程序可以非常复杂,但其基本结构一般由数个完成单个动作的程序步和环境设置语句构成。而程序步分为两种,一种
14、叫数据步(datastep),一种叫过程步(procstep),分别以DATA语句和PROC语句开始。数据步和过程步由若干个语句组成,一般以RUN语句结束。前者用来创建和修改用于统计分析的数据集,后者则利用已创建的数据集完成特定的统计分析任务。比如下面的例子:libnamead:sysdata;libnamead:sysdata;datadataa.aaaa;a.aaaa;inputx;inputx;cards;cards;112 23 34 45 5;procproc print;print;varx;varx;runrun;quit;quit;第第1 1句就是一个环境设置语句,其作用是设定
15、一个逻辑库,句就是一个环境设置语句,其作用是设定一个逻辑库,逻辑库名称为逻辑库名称为a,a,第第2 26 6句构成数据步,其功能是新建一个数据集,数据集名句构成数据步,其功能是新建一个数据集,数据集名称为称为aaaa,aaaa,并且输入数据,并且输入数据,第第7 79 9句构成过程步,其功能是将数据集句构成过程步,其功能是将数据集aaaaaaaa中变量中变量x x的数的数值在值在outputoutput窗口中输出。窗口中输出。SASSAS程序的书写规则与程序注释程序的书写规则与程序注释前面已经提到,前面已经提到,SASSAS对程序的书写格式比较灵对程序的书写格式比较灵活,大小写一般不区分(字符
16、串中要区分大小写),活,大小写一般不区分(字符串中要区分大小写),但我们仍提倡但我们仍提倡SASSAS程序与其它编程语言相似,采用程序与其它编程语言相似,采用缩进格式,使得源程序结构清楚,容易读懂。缩进格式,使得源程序结构清楚,容易读懂。SASSAS程序的程序注释有以下两种格式:程序的程序注释有以下两种格式:注释语句:以星号注释语句:以星号“*”“*”开始,可占多行,以分号开始,可占多行,以分号“;”“;”结束。结束。注释段落:用注释段落:用“/*”“/*”和和“*/”“*/”包括起来的任何字符,包括起来的任何字符,可占多行。可占多行。同样,我们提倡在程序中要有适当的注释,使同样,我们提倡在程
17、序中要有适当的注释,使程序的可读性强。程序的可读性强。四、四、SAS程序的数据步程序的数据步数据集(dataset)和库SAS数据集(SASDatasets)可以看作由若干行和若干列组成的表格,类似于一个矩阵,但各列可以取不同的类型值,比如整数值、浮点值、时间值、字符串、货币值等等。比如,前面的例子生成了一个名为C0401的数据集,它的逻辑形式如下表:NAMENAMESEXSEXMATHMATHCHINESECHINESEAVGAVG李明李明男男9292989886.833386.8333张红艺张红艺女女898910610688.666788.6667王思明王思明男男8686909080.50
18、0080.5000张聪张聪男男989810910994.416794.4167刘刘颍颍女女808011011085.833385.8333表1数据集的逻辑形式数据集的每一行叫做一个观测(Observation),每列叫做一个变量(Variable)。SAS数据集等价于关系数据库系统中的一个表,实际上一个SAS数据集有时也称作一个表。在数据库术语中一个观测称作一个记录,一个变量称作一个域。在C0401数据集中有5个观测,分别代表5个学生的情况,而每个学生有5个数据,分别为姓名、性别、数学成绩、语文成绩、平均分,所以此数据集有5个变量,变量名依次为NAME、SEX、MATH、CHINESE和AVG
19、。从上面看出,数据集要有名字,变量要有名字,所以SAS中对名字(数据集名、变量名、数据库名,等等)有约定:SAS名字由英文字母、数字、下划线组成,第一个字符必须是字母或下划线,名字最多用8个字符,大写字母和小写字母不区分。比如,name,abc,aBC,x1,year12,_NULL_等是合法的名字,且abc和aBC是同一个名字,而class-1(不能有减号)、abit(不能有空格)、serial#(不能有特殊字符)、Documents(超长)等不是合法的名字。逻辑库逻辑库SASSAS系统将所使用的文件以库的形式组织起来,而数据系统将所使用的文件以库的形式组织起来,而数据集则存放在一个库中,这
20、个库就称为逻辑库。前面见到过的集则存放在一个库中,这个库就称为逻辑库。前面见到过的libnamelibname命令就用于指定库标记。其一般格式为:命令就用于指定库标记。其一般格式为:LibnameLibname库名称库名称 文件夹位置文件夹位置 选项;选项;例如例如libnamead:sysdata;libnamead:sysdata;datadataa.aaaa;a.aaaa;inputx;inputx;cards;cards;112 23 34 45 5;procproc print;print;varx;varx;runrun;quit;quit;第一行就指定第一行就指定d:sysdat
21、ad:sysdata为逻辑库位置,其名称为为逻辑库位置,其名称为a.a.引用在逻辑库中数据集时要使用两级名称来指定,第一级为库名称,第二级为数据集名,中间用句点“.”隔开。即用库名称.数据集名的格式来引用该数据集。仍然是上面的例子,第26句新建一个数据集,数据集名称为aaaa,就可用a.aaaa来引用该数据集。数据步的基本结构数据步的基本结构数据步均以数据步均以DATADATA语句开始,用于创建和处理语句开始,用于创建和处理数据集。数据步中常用的语句如下表:数据集。数据步中常用的语句如下表:表表2 2数据步的常用语句数据步的常用语句 语语句句格式格式功能功能DATADATA语语句句DATADA
22、TA数据集名数据集名;数据步的开始,同数据步的开始,同时时命名将要命名将要创创建的数据集建的数据集INPUTINPUT语语句句INPUTINPUT变变量名量名;确定确定变变量的量的读读入格式,即确定入格式,即确定输输入的数据所入的数据所对应对应的的变变量量语语句句格式格式功能功能CARDSCARDS或或DATALIDATALINESNES语语句句与数据与数据块块CARDS;CARDS;数据数据块块;或或DATALINES;DATALINES;数据数据块块;CARDSCARDS与与DATALINESDATALINES功能相同,功能相同,均用于均用于标标志数据志数据块块的开始的开始INFILEIN
23、FILE语语句句INFILEINFILE 文件名文件名 选项选项;从外部文件中从外部文件中读读入数据入数据块块OUTPUTOUTPUT语语句句将所将所读读入的数据存放在入的数据存放在缓缓存中,存中,也可用也可用OUTPUTOUTPUT语语句句强强制制输输出一条新出一条新记录记录SETSET语语句句对对数据集中的数据数据集中的数据进进行行编辑编辑,也可将指定数据集的内容复也可将指定数据集的内容复制到新建数据集中制到新建数据集中下面是几个例子。Data语句:Dataabc;datawork.abcdatasasuser.abc;dataa.abc;INPUT语句:Inputxyz;/*输入变量x,
24、y,z*/Inputx1-x10;/*输入10个变量x1到x10*/Inputx$y;/*输入变量x,y,符号$指明x为字符变量,表示数据是连续读入*/完整例子:libnamead:sysdata;/*设定逻辑库,库名为a*/dataa.aaaa;/*建立数据集,其名为aaaa*/inputx;/*输入变量x,表示数据是连续读入*/cards;/*准备输入数据*/123.5;/*输入数据,注意有缺失值(缺失值用单独的小数点代表)*/五、五、SAS程序的过程步程序的过程步通俗地说,SAS程序的过程步就是用于实现各种统计分析功能的SAS命令,我们只需要按照其格式调用它们。过程步总是以一个proc语
25、句开始,后面紧跟着过程步名。下表列出一些常用的过程步名及功能。过过程步名程步名功能功能SortSort将数据集按指定将数据集按指定变变量排序量排序PrintPrint将数据集中数据列表将数据集中数据列表输输出出GchartGchart绘统计图绘统计图UnivariateUnivariate对对指定的数指定的数值变值变量作量作详细详细的的统计统计描述描述MeansMeans对对指定的数指定的数值变值变量作量作简单简单的的统计统计描述描述FreqFreq对对指定的分指定的分类变类变量作量作统计统计描述和描述和检验检验Npar1wayNpar1way非参数非参数检验检验TtestTtest进进行行t
26、 t检验检验AnovaAnova进进行方差分析行方差分析GLMGLM拟拟合一般合一般线线性模型性模型REGREG拟拟合合线线性回性回归归模型模型CorrCorr进进行相关分析行相关分析LogisticLogistic拟拟合合LogisticLogistic回回归归模型模型PhregPhreg拟拟合合coxcox比例比例风险风险模型模型 过程步的基本结构过程步的基本结构SASSAS过程步的一般形式为:过程步的一般形式为:PROCPROC过程名过程名DATA=DATA=输入数据集输入数据集 选项选项;过程语句过程语句/选项选项;过程语句过程语句/选项选项;RUN;RUN;其中其中PROCPROC语
27、句的选项是可选的,用来规定过程运行语句的选项是可选的,用来规定过程运行的一些设置,如果有多个选项用空格分开。的一些设置,如果有多个选项用空格分开。DATA=DATA=输入数据输入数据集也是可选的,如果缺省的话使用最近生成的数据集。过程集也是可选的,如果缺省的话使用最近生成的数据集。过程步一般以步一般以RUNRUN语句结束。通常情况下,过程语句与数据步语句结束。通常情况下,过程语句与数据步中的语句不同,数据步中的语句不能用在过程步中。过程步中的语句不同,数据步中的语句不能用在过程步中。过程步语句一般以某一个关键字开头,比如语句一般以某一个关键字开头,比如VARVAR、BYBY、TABLESTAB
28、LES、WEIGHTWEIGHT等,语句中有一些有关说明,如果有选择项的话要等,语句中有一些有关说明,如果有选择项的话要写在斜杠后。写在斜杠后。SASSAS过程步常用语句过程步常用语句 本小节简单介绍几个在本小节简单介绍几个在SASSAS过程步中常见的语句,更具体的过程步中常见的语句,更具体的用法可以在以后实际用到时再仔细体会。用法可以在以后实际用到时再仔细体会。1.DATA1.DATA选项选项选项选项用于指明所需要处理的数据集,如果缺省的话使用最近生成用于指明所需要处理的数据集,如果缺省的话使用最近生成的数据集。的数据集。2.VAR2.VAR语句语句语句语句VARVAR语句在很多过程中用来指
29、定分析变量。在语句在很多过程中用来指定分析变量。在VARVAR后面给出后面给出变量列表:变量列表:VARVAR变量名变量名11变量名变量名22变量名变量名n;n;变量名列表可以使用省略的形式,如变量名列表可以使用省略的形式,如X1-X3X1-X3,MATH-CHINESEMATH-CHINESE等。例如:等。例如:Procprint;Procprint;varmathchinese;varmathchinese;run;run;3.MODEL3.MODEL语句语句语句语句MODELMODEL语句在一些统计建模过程中用来指定模型的语句在一些统计建模过程中用来指定模型的形式。其一般形式为形式。其一
30、般形式为 MODELMODEL因变量因变量 自变量表自变量表/选项选项;比如比如,将下列语句放在某一过程步中将下列语句放在某一过程步中 modelmath=chinese;modelmath=chinese;则用语文成绩预测数学成绩。则用语文成绩预测数学成绩。4.BY4.BY语句和语句和语句和语句和CLASSCLASS语句语句语句语句5.OUTPUT5.OUTPUT语句语句语句语句 6.FREQ6.FREQ语句和语句和语句和语句和WEIGHTWEIGHT语句语句语句语句7.ID7.ID语句语句语句语句8.WHERE8.WHERE语句语句语句语句9.LABEL9.LABEL语句和语句和语句和语句
31、和FORMATFORMAT语句语句语句语句六、SAS语言入门语言入门 SASSAS是一种专用的数据处理、统计计算语言,但是它也包含是一种专用的数据处理、统计计算语言,但是它也包含一般的高级语言编程能力并扩充了许多数学、统计等方面的一般的高级语言编程能力并扩充了许多数学、统计等方面的函数。由于函数。由于SASSAS的数据处理功能非常强大,我们并不提倡用的数据处理功能非常强大,我们并不提倡用它来编复杂的程序,因此,我们只介绍它来编复杂的程序,因此,我们只介绍SASSAS语言用来进行一语言用来进行一般编程计算的功能。般编程计算的功能。SASSAS语言的编程计算能力主要由语言的编程计算能力主要由SAS
32、SAS数据步提供(另外数据步提供(另外SASSAS还提供了一个还提供了一个SAS/IMLSAS/IML模块可以进行向量、矩阵运算,读者模块可以进行向量、矩阵运算,读者有兴趣可以自己学习)。所以,下面给出的例子如果没有写有兴趣可以自己学习)。所以,下面给出的例子如果没有写DATADATA语句实际应该在例子前面加上语句实际应该在例子前面加上DATADATA语句,在后面加上语句,在后面加上RUNRUN语句才能运行。注意语句才能运行。注意DATADATA语句总是以关键字语句总是以关键字DATADATA开开头,后面给出一个数据集名,就是本数据步要生成的数据集头,后面给出一个数据集名,就是本数据步要生成的
33、数据集的名字,例如:的名字,例如:datatmp1;datatmp1;也可以省略数据集名,这时也可以省略数据集名,这时SASSAS自动生成一个临时数据集名。自动生成一个临时数据集名。1 1赋值语句赋值语句赋值语句赋值语句在在SASSAS中用赋值语句计算一个值并存放到变量中。中用赋值语句计算一个值并存放到变量中。格式为格式为 变量名变量名 表达式表达式;例如:例如:avg=(math+chinese/120*100)/2;/*avg=(math+chinese/120*100)/2;/*计算平均分数计算平均分数,赋值给变量赋值给变量avg*/avg*/isfem=(sex=isfem=(sex=
34、女女);/*);/*先生成一个取值为先生成一个取值为0 0或或1 1的值,性的值,性别为女时为别为女时为1 1,否则为,否则为0*,0*,然后赋值给变量然后赋值给变量isffem*/isffem*/newv=.;/*newv=.;/*将变量赋了缺失值将变量赋了缺失值*/*/注意想试验上述语句注意想试验上述语句要把它们放入数据步中,并且等号右边的表达式中要把它们放入数据步中,并且等号右边的表达式中的各变量应该是存在的,否则会得到缺失值结果。的各变量应该是存在的,否则会得到缺失值结果。2.输出语句SAS数据步的输出一般是数据集,用赋值语句计算的结果会自动写入数据集。SAS也提供了一个PUT语句,可
35、以象其它语言程序的PRINT、WRITE(*,*)、printf等语句一样立即打印输出结果。PUT的基本语法很多,只举几例:data;x=0.5;y=sin(x);putSinefunctionvalueofxisy;run;结果将在运行记录窗口显示一行Sinefunctionvalueof0.5is0.4794255386在PUT语句中使用“变量名”来指定输出项可以显示带有变量名的输出结果,比如把上程序中的PUT语句改为putx=y=;则结果在LOG窗口显示为X=0.5Y=0.4794255386分支结构分支结构如果需要在某条件满足时执行某一操作,可以用如果需要在某条件满足时执行某一操作,可
36、以用IFIF条件条件THENTHEN程序块程序块ELSEELSE程序块程序块的结构,其中的结构,其中ElseElse语句及其后的程序块可以省略。需语句及其后的程序块可以省略。需要注意的是,如果程序块只有一句,则可直接写出,要注意的是,如果程序块只有一句,则可直接写出,否则应以否则应以DODO开始开始,以,以ENDEND结束结束。比如,比如,ifmax(a)20thenp=0;ifmax(a)20thenp=0;elsep=1;elsep=1;上述程序当上述程序当max(a)20max(a)0THENDO;IFx0THENDO;PUTXPUTX为正数为正数;x=2*x;x=2*x;PUTx=;P
37、UTx=;END;END;注意注意SASSAS的分支结构的写法与其它语言有些不同,它的分支结构的写法与其它语言有些不同,它不用不用ENDIFENDIF结束。结束。循环结构SAS数据步可以使用循环结构,主要的是两种:计数DO循环和当型、直到型循环。计数DO循环的写法是:DODO计数变量计数变量 起始值起始值TOTO结束值结束值BYBY步长步长;循环体语句循环体语句END;END;在循环体中可以用LEAVE语句跳出循环,相当于C语言的break语句;用CONTINUE语句可以立即结束本轮循环并转入下一轮循环的判断与执行.当型循环当型循环的语法是:的语法是:DOWHILE(DOWHILE(循环继续条
38、件循环继续条件););循环体语句循环体语句END;END;程序先判断循环继续条件是否成立,成立时执行循环程序先判断循环继续条件是否成立,成立时执行循环体语句,再判断循环继续条件,如此重复,直到循体语句,再判断循环继续条件,如此重复,直到循环继续条件不再成立。环继续条件不再成立。直到型循环直到型循环的写法是:的写法是:DOUNTIL(DOUNTIL(循环退出条件循环退出条件););循环体语句循环体语句END;END;程序先执行循环体,然后判断循环退出条件是否成立,程序先执行循环体,然后判断循环退出条件是否成立,成立则结束循环,否则继续。注意每轮循环都是先成立则结束循环,否则继续。注意每轮循环都是
39、先执行循环体再判断是否退出。执行循环体再判断是否退出。如:data;DOi=1TO20BY2;j=i*3;puti3.j5.;END;run;可以输出一个1,3,5,7,19的立方表。七、七、SAS的基本统计分析功能的基本统计分析功能SASAnalysis模块前面我们已经对SAS系统进行了简要的介绍,下面我们讲如何利用SASAnalysis模块计算描述统计量、进行假设检验、拟合曲线以及进行回归分析1、启动Analyst模块 选择选择SolutionsSolutions菜单下的菜单下的AnalysisAnalysis,然后再选择下面的,然后再选择下面的AnalystAnalyst,如图:,如图:
40、得到得到AnalystAnalyst界面界面2、数据集相关操作 一、依分布产生数据一、依分布产生数据 利用利用DataData菜单中菜单中RandomVariatesRandomVariates可以产生服从特定分布的可以产生服从特定分布的随机数,可以选择的分布类型包括:随机数,可以选择的分布类型包括:正态分布正态分布 均匀分布均匀分布 二项分布二项分布 卡方分布卡方分布 泊松分布泊松分布 指数分布指数分布 BetaBeta分布分布 GamaGama分布分布 几何分布几何分布 极值分布极值分布例例1 1、利用、利用AnalystAnalyst模块生成模块生成100100个服从标准正态分个服从标准
41、正态分布的数据,并把生成的数据命名为布的数据,并把生成的数据命名为NormalNormal保存在保存在SasuserSasuser下。下。操作步骤:操作步骤:(1 1)在)在DataData菜单中选择菜单中选择RandomVariatesRandomVariates,然后选,然后选择分布类型择分布类型NormalNormal(正态分布),则弹出现一(正态分布),则弹出现一对话框:对话框:(2 2)在)在NumberofvaluestogenerateNumberofvaluestogenerate中填中填100100,在在Newcolumnname(Newcolumnname(变量名称)中填变
42、量名称)中填XX,在,在MeanMean中填中填0 0,在,在StandarddeviationStandarddeviation中填中填1 1,单击,单击OKOK(3 3)可以看到数据集中产生了新的一列,在)可以看到数据集中产生了新的一列,在FileFile菜单中选菜单中选SaveAsBySASNameSaveAsBySASName,保存数据集,保存数据集(4 4)在弹出的对话框中双击)在弹出的对话框中双击SasuserSasuser,并在,并在MemberMemberNameName中填数据集名称中填数据集名称NormalNormal,单击,单击SaveSave即可即可二、随机抽样二、随机
43、抽样使用Data中RandomSample可以从数据集中随机抽取记录。例:在刚才生成的正态数据集normal中随机抽取50个数据。步骤如下:(1)首先选择Data菜单下RandomSample命令,弹出对话框:(2 2)在)在RowsRows中填中填5050,单击,单击OKOK即可得到一个表格含即可得到一个表格含有随机抽取的有随机抽取的5050个样本,如图:个样本,如图:3、绘制统计图一、绘制变量直方图并在图上拟合分布曲线一、绘制变量直方图并在图上拟合分布曲线利用Grphs中Histogram可以绘制变量直方图并拟合分布曲线。例:以上节normal数据集中X为对象绘制直方图,并在直方图上拟合正
44、态分布曲线。操作步骤:(1)打开Normal文件:FileOpenBySASNameSasuserNormalOK(2 2)在)在GrphsGrphs下选下选HistogramHistogram,单击绘图变量,单击绘图变量X X,再单,再单击击AnalysisAnalysis将其加入将其加入(3 3)选择)选择FitFit在直方图上拟合正态分布曲线,单击在直方图上拟合正态分布曲线,单击FitFit弹出对话框弹出对话框(3 3)选择)选择NormalNormal,单击,单击OKOK回到原对话框,再单击回到原对话框,再单击OKOK即得:即得:二、概率图在直方图基础上我们可以猜想变量是服从正态分布的
45、,通过绘制概率图可以来证实我们的想法。概率图将数值排序,给出每个数值对应的分位数,然后打点作图。如果这些点呈现线性特征,说明他们与理论分布相符,同时又在图像上加上一条给定分布的曲线,并给出分布的系数。例:绘制例:绘制NormalNormal数据集中数据集中X X的概率图,步骤如下:的概率图,步骤如下:(1 1)首先选择)首先选择GraphsGraphs下下ProbalityPlotProbalityPlot,弹出对话框,弹出对话框(2 2)单击)单击X X,再单击,再单击AnalysisAnalysis,然后选择分布为,然后选择分布为NormalNormal,单击,单击OkOk得到概率图:得到
46、概率图:可以看到X的分布与正态分布基本吻合,图中还给出了正态分布的参数:均值为0.06217,标准差为0.996833。一、绘制散点图使用使用GraphsGraphs下的下的ScatterPlotScatterPlot可以绘制散点图可以绘制散点图例:病人在服用某种放射性药物后,体内的放射性物质例:病人在服用某种放射性药物后,体内的放射性物质的含量的含量y y与时间与时间x x具有一定的关系,绘制二者的散点具有一定的关系,绘制二者的散点图,然后找出他们的关系,数据如下:图,然后找出他们的关系,数据如下:x x1 12 23 34 45 56 67 78 89 910101111y y373714
47、145 51.831.830.670.670.240.240.090.090.030.030.010.010.0040.0040.0010.0011 1、首先将数据输入建立一个名为、首先将数据输入建立一个名为TestTest的数据集,然后的数据集,然后在在ANALYSTANALYST模块下打开模块下打开2 2、然后打开、然后打开ScatterPlotScatterPlot对话框对话框3 3、在绘制散点图对话框中将、在绘制散点图对话框中将x x放在放在X X轴,轴,y y放在放在Y Y轴,单轴,单击击OKOK可以得到二者的散点图,为容易观察,可在可以得到二者的散点图,为容易观察,可在Displa
48、yDisplay中选择用线连接散点图中选择用线连接散点图4 4、绘制的图形如下,可以看到放射性物质的含量和时、绘制的图形如下,可以看到放射性物质的含量和时间具有负指数衰减关系间具有负指数衰减关系4、统计分析与计算一、计算描述性统计量利用Statistics的Descriptive菜单可以计算描述性统计量,Descriptive下有4个选项:SummaryStatistics计算简单统计量Distribution计算分布信息Correlations计算变量间的相关系数FrequencyCounts统计变量的频数例例1 1:计算上例:计算上例TestTest中放射性物质中放射性物质y y的简单统计
49、量的简单统计量1 1、打开、打开TestTest数据集,选数据集,选StatisticsDescriptiveStatisticsDescriptiveSummaryStatisticsSummaryStatistics,出现对话框,选择,出现对话框,选择y y分析分析:2 2、在、在StatisticsStatistics中设置需要计算哪些统计量,单击中设置需要计算哪些统计量,单击OKOK即即可得所需统计量。可得所需统计量。3 3、输出结果如下、输出结果如下例例2 2:计算:计算x x与与y y间的相关系数间的相关系数1 1、打开、打开TestTest数据集,选择数据集,选择Statisti
50、csDescriptiveStatisticsDescriptiveCorrelationsCorrelations,在对话框中将,在对话框中将x x与与y y选入选入AnalysisAnalysis,然后,然后单击单击OKOK2 2、输出结果如下,可见、输出结果如下,可见x x与与y y间的相关系数为间的相关系数为-0.70152-0.70152二、列联表分析使用使用StatisticsStatistics菜单下的菜单下的TableAnalysisTableAnalysis可以进行列可以进行列联表分析(即属性频数数据分析联表分析(即属性频数数据分析)例例1:1:为了考察法院判决是否与被告种族