SAS培训班讲义.ppt
1,课程名称:SAS培训班讲义讲师:赵坚毅网址:,2,第一部分 课程介绍,培训内容:使学员掌握SAS的界面使用和基本编程使用,为学习和应用SAS的其他专业功能奠定坚实的基础。使用SAS进行数据分析和处理,3,推荐教材,1 SAS系统的帮助以及在线文档,都是学习SAS的很好的工具。2 SAS系统Base SAS 软件使用手册 高惠璇等编译,中国统计出版社1997 3.SAS 系统SAS/STAT软件使用手册高惠璇等编译,中国统计出版社1997 4.实用统计方法与SAS系统高惠璇 北京大学出版社 2001,4,数据类型,a.横截面数据集(cross-sectional data set):即给定时点对个人、家庭、企业、国家或一系列其他单位采集的样本所构成的数据集(应该忽略细小的时间差别)名词术语1、数据集:数据的集合,由样本(行)和变量(列)组成,5,数据类型,b.时间序列数据集(time series data set):是由一个或几个变量在不同时间的观测值所构成的。c.混合横截面数据集(pooled cross section data set):有些数据既有横截面数据的特点又有时间序列的特点,但每一时点的样本不同。,6,数据类型,d.综列数据集(panel data set):由横截面数据集中每个样本的一个时间序列组成。(定点长期调查)其他专门数据类型:1、离散数据(discrete data):通常在考察个人、家庭或企业的决策行为时,通过问卷调查获得,由此发展出“离散选择模型”。定量数据与定性数据,7,数据集类型,2、持续数据(survival data):用于考察变量从开始到结束或调查终止前所经过的时间长度,如失业持续时间、罢工持续时间,股市牛熊市持续时间,8,使用SAS进行数据处理的应用实例,商场应用:在美国大型超市WalMart(沃尔玛)发生的实例:在星期四,年轻夫妇为准备周末通常同时购买尿布和啤酒,因此把尿布和啤酒放在一起会提高效率。,9,数据处理的应用,天文学(skicat系统处理天文数据发现类星体)生物学(人类基因组计划处理人体数据研究基因)市场营销(货篮分析)公司财务的处理(记流水帐)经济论文写作中的实证部分,10,数据处理的应用,“今天,我们不得不生存在全球化和信息革命影响下的世界,我们只有两个选择:适应它,或者被它抛弃。”英特尔公司主席安德鲁格鲁夫1995年尼葛洛庞帝的数字化生存一书指明了即将到来的数字时代,而在未来一长段时间,数字化生存仍将是人类的主要生存方式,在经济学领域也不外如是。,11,第二部分 SAS系统入门SAS系统概况,大型集成、跨平台软件系统 完备的数据访问(Access)、管理(manage)、分析(analyze)和呈现(present)及应用开发(develop)的功能 在数据处理、统计分析和IT应用领域,SAS系统已经成为国际上的标准软件系统。,12,SAS的发展历程一,1966年由美国北卡罗来纳州(NorthCarolina)州立大学开始研制 1976年成立美国SAS软件研究所,并开始对SAS系统进行维护、开发、销售和培训等工作 1985年推出了SAS/PC(6.02)版本,13,SAS发展历程二,1989年推出SAS/PC(6.04)版本 1997年下半年推出适用于多种操作系统的6.12版本 2000年2月又正式推出SAS系统8版本 2002年推出全新的SAS9版本,14,SAS在中国的发展,SAS公司于1989年在北京成立了办事处 1997年,SAS软件研究所正式宣布成立大中国区 1999年3月在国内设立独资公司赛仕软件(上海)有限公司。,15,SAS的成绩,全球十大独立软件开发商之一 世界六大洲近50个国家或地区设有分公司及分支机构 应用遍及120多个国家和地区(包括中国)的31000多个机构中 全球100家最大公司中的90多家都在应用SAS系统。,16,SAS模块介绍,Base SAS:1、数据管理功能2、基础统计计算功能 3、报表生成和图形显示功能,17,SAS/STAT 统计分析SAS/INSIGHT 数据探索SAS/ASSIST 面向任务的易学易用模块SAS/ETS 时间序列处理SAS/OR 运筹学和工程管理SAS/QC 质量控制SAS/IML 矩阵运算SAS/GRAPH 绘图SAS/AF 面向对象编程(OOP)的应用开发工具,拓展SAS的功能,18,SAS/EIS 面向对象编程的开发工具,用于开发企业信息系统SAS/ACCESS 数据访问 SAS/TOOLKIT 扩充工具,把用其他软件编写的程序转化成SAS的组成部分SAS/Warehouse Administrator 数据仓库管理SAS/Enterprise Miner 数据挖掘SAS/Text Miner 文本挖掘SAS/SHARE 数据库的并发式控制专门软件SAS/CONNECT 使各平台SAS系统进行分布式处理,从而有效利用各平台机器资源,19,SAS/GIS 地理信息系统与空间数据的显示分析SAS/SPECTRAVIEW 数据可视化分析工具,用几何成像的方式来分析多维数据SAS/Intrnet 提供构建基于SAS的企业内部网络支持SAS/FSP 快速数据处理的交互式菜单系统SAS/CALC 功能完善的多维电子表格软件SAS/ENGLISH 提供利用自然英语获取信息的能力,20,SAS/SECURE 网络传输加密SAS/OLAP SERVER 多维数据存储及汇总结果呈现SAS/GENETICS:SAS公司的第一个科学研究应用软件,应用于遗传学,有5个分析过程SAS/High-Performance Forecasting:提供快速高效的预测结果SAS/C,SAS/C+针对IBM大型机的开发工具SAS/LAB 向导式的数据分析软件,特别针对day-to-day类型数据,21,SAS工作空间,程序窗口(PROGRAM EDITOR)运行记录窗口(LOG)输出窗口(OUTPUT),22,SAS程序第一例,SAS/HelloWorld.sas注:以后程序文件省略后缀,直接简记为文件名称,如此例简记为HelloWorld,需要说明文件类型时才标明后缀。,23,SAS/Insight模块,1、界面介绍2、Fill values 功能3、Extract 功能4、Edit/windows/tool菜单使数据探索色彩缤纷(注意选项设置)5、打开分布、拟合、多元等的窗口之后主菜单Tables、Graphs、Curves菜单才被开放。Fly,insurance数据集示例,24,Insight模块,其他功能:1、分布(输出大多数常用的统计量)2、拟合(回归分析)3、多元(方差分析),25,SAS程序的书写格式,1、SAS程序由语句组成,语句用分号结束。2、SAS语句可以从某一行的任意位置开始;3、几个SAS语句可以写在同一行上,但每句要使用分号,26,SAS程序的书写格式,4、一个语句也可以写成几行,只要语句中的单词不被断开就可以。在一个语句中各个单词之间至少要有一个空格。5、SAS程序中一般不区分大小写(字符串中要区分大小写)6、用/*注释的内容*/来对程序进行注释,27,SAS程序的结构,SAS数据集样本(观测、记录)、变量(字段、域)、表(数据集)、数据库许多SAS语句都是以关键词开始并用它识别语句的类型(如data、input、proc)绝大部分的SAS语句都可分为两步:DATA步和PROC步,28,SAS的变量及格式,变量属性(名称、类型、长度、输入格式、输出格式、标签)类型:数字型、字符串型输入格式:数据被SAS读取的格式输出格式:数据呈现给人们的格式,29,SAS程序第二例,SAS/orange.sas输入数据-形成数据集-排序-打印显示,30,SAS文件及命名,1、SAS数据集文件(后缀为sas7bdat)2、SAS程序文件(后缀为sas)3、SAS日志文件(后缀为log)4、SAS输出文件(后缀为list),31,SAS文件及命名,临时数据集和永久数据集SAS文件的2级命名方式:目录.文件名work目录和其他目录使用Libname语句创建永久数据集,libname 自建目录名 目录地址;libname例,32,建立SAS数据集的5种方法,1、data步自己输入数据建立。Orange例2、data步利用set 语句建立。Set例3、从外部调入。Infile例4、利用“导入数据”功能建立。Id.xls例、data.txt例5、利用EFI(external file interface)功能导入。Column.dat例、tests.dat例、comma.dat例,Analyst分析家模块,1、界面介绍2、浏览与编辑模式3、生成示例数据与抽样4、程序清单5、假设检验,33,34,SAS运算符(operator例),算术运算符:*/*比较算符:=(EQ)=(NE)(GT)=(GE)(最大值)|(!)(连接),35,字符的比较(operator_char例),1、按机器使用的字符排列次序(ASC或Unicode)从左到右被比较。2、两个不等长的字符串被比较时,系统在较短的字符串后自动添上空格3、在比较符后加冒号,则只比较首字母,36,运算次序一,在括弧里的表达式先计算第一级:*()前缀第二级:*/第三级:第四级:|第五级:其余比较算符第六级:第七级:,37,运算次序二,对于相同优先级的算符,左边的运算先做。但有两个例外:1.对最高优先级,右边的运算先做2.当两个比较算符围着一个量时,这个表达式看成是有一个and 出现一样被计算。如:12age 20,等价于:12age&age20,38,SAS函数一(部分),数学函数:abs()、max()、min()、mod(x,y)、sign(x)、sqrt(x)、sum()、mean()、exp(x)、log(x)、log10(x)、log2(x)、sin(x)、arsin(x)截取函数:ceil(x)、floor(x)、int(x)、round(x,n)字符函数:index(S,S1)、substr(S,p,n)、scan(S2,n)、upcase(S)、compress(S,S1),39,SAS函数二(部分),SAS系统存贮日期值为1960年1月1日到指定日期之间的天数SAS存贮时间值为从午夜开始到指定时间的秒数日期时间值存贮为1960年1月1日午夜到指定日期时间之间的秒数日期时间函数:weekday()、day()、month()、qtr()、year(),40,SAS函数三(部分),概率统计函数:probnorm(x)n(of X1-Xn)、nmiss(of X1-Xn),var(of x1-xn)、std(of x1-xn)随机数函数:rannor(seed)、ranuni(seed)Functions例,41,DATA步,文件操作语句运行语句控制语句信息语句,42,DATA步流程,DATA语句标志了数据步开始,并指定了数据步结束时要生成的数据集名字。每次读入一行数据,读入后执行数据步中的其它语句,循环数据步读取整个数据。_N_变量表示DATA步已经执行的次数_error_变量值为1时表示程序出错Flow例,43,DATA步流程(Flow1例)(*),读外部数据时,数据步迭代(即每一次)的开始把变量的值置为缺失值,有几种情况例外:1、retain语句提到的变量2、sum语句中创建的变量3、数组_temporary_中的数据元4、file和infile语句选项中创建的变量5、自动变量读sas数据集时,只在第一次迭代时把变量值置为缺失,以后变量保留其值直至新值写入,44,文件操作语句DATA语句,DATA语句的选项DROP选项(不列出某些变量)KEEP选项(列出某些变量)LABEL选项(给数据集加标签)RENAME选项(重命名变量)Data例,45,DATA语句,数据集名字:(data2例)1、data语句后无数据集名字,则自动生成 data1,data2等为数据集名字,相当于data _data_;2、data _null_;不产生实际的数据集,只是把内容暂存于内存,以供put语句等读取结果,可以节约计算机资源3、data _last_;以最近产生的数据集命名并取代其内容。,46,Input语句,分组格式:input(g1-g5)(3*7.2,2*5.2);input(a b)($5.)input(a b)($,5.)无需分行而按变量连贯读数据固定该数据行;用于需要多个input语句同时读取一行数据。input例,Input例,47,Input语句,利用n+n#n 进行指针控制input1例,48,Input语句,几个特殊符号的用法(:&):读值时第一次遇到分隔符、或是数据行末尾、或是读满列数而结束 字符型输入值可以嵌有一个或几个空格 字符型输入值保留引号(与infile 语句中选项dsd一起使用才有效)Input2例,49,Cards语句,Cards语句与datalines语句可以通用如果输入数据中含有分号,可用cards4语句或datalines4语句,同时,数据结尾用4个分号表示数据输入结束Cards4例,50,Put 语句,Put语句负责在log窗口输出一些结果,file print选项可把输出转移到output窗口Put _infile_(输出最新的数据行到SAS log 窗口)Put _all_(输出所有变量的值)Put _page_(输出新页)Put例、put1例,51,File 语句,File print 把put语句产生的输出结果转移到output窗口Put例,52,By 语句,在DATA步中,SAS系统对每个BY组创建两个临时变量:First.variableLast.variable它们用来区别每个BY组的第一个和最后一个观测By例,53,Set语句,使用set语句复制数据集Point选项指明要读入的记录序号set 数据集 point=指针变量;可用于抽样,一般与output语句连用Nobs选项创建一个临时变量用来存储数据集的观测总数见set例,point例,54,Set语句,Set语句可以串接多个数据集,形式如下Data 数据集;set 数据集A 数据集B;Run;Rename选项负责改名;in选项产生变量负责记录观测来自该数据集;见set2例,55,Merge语句,使用Merge语句并接多个数据集,形式如下Data 数据集;merge 数据集1 数据集2;by 变量;run;见merge例,56,Update 语句,Update语句用一个升级数据集中的观测来修改一个主数据集。Update语句一定要与BY语句一起使用,BY语句给出了合并观测时共同变量的名字主数据集中的共同变量必须是单值的,即不能有两个或两个以上的观测其共同变量值相同Update例,57,Infile语句,Delimiter(DLM)选项:规定一个字符替代空格作为分隔符。Firstobs选项:不是从文件的第一个记录开始,而是从指定行开始读取记录Obs选项:规定用户想从输入文件中连续读取的最后一个记录号Infile(dlm)例、Infile(obs)例,58,Infile语句,DSD选项:1、使最外层引号括起的内容当成整个字符串输入,并去除最外层引号2、默认分隔符为逗号3、两个相邻的分隔符意味着前一个分隔符后的字段为缺失值Infile(dsd)例(回顾input2例),59,Infile语句,当行末尾数据宽度少于规定宽度时Flowover:默认选项,将下一条记录读入Missover:将变量置为缺失Truncover:将数据直接读入,不管宽度是否少于规定宽度Stopover:系统终止数据步执行,报告出错Missover例,60,Infile语句,Lrecl=n选项:设定源数据文件行的物理长度,缺省为256,最大可设为32767Pad|Nopad选项:pad选项指当宽度少于规定宽度时,在后面填充空格至Lrecl=n规定的行长度,缺省为nopadMissover例,61,运行(算)语句赋值语句和累加语句,赋值Variable=expression例:x=a+b;累加 Variable+expression例:if x=5 then n+1;例:n+(-1)累加语句中的变量必须是数值型变量,初始值为0,62,Delete和lostcard(*)语句,Delete语句告诉SAS系统停止处理当前的观测,并且返回到这个Data步的开头处理其他观测当SAS系统遇到用几个记录表示一个观测的时候,数据中有丢失记录时,使用Lostcard语句来重新对准输入数据delete例,lostcard例,63,Stop和abort语句,用stop语句来停止处理data步,正被处理的那个观测没有添加到SAS数据集中,stop语句不影响后面的任意data步或proc步的执行用abort语句来中止SAS系统执行当前DATA步,return选项关闭SAS并返回操作系统。Stop与abort的区别在于abort语句置_error_变量为1Abort例,64,Where 语句,从已存在的SAS数据集选择子集,在把观测读入之前规定数据必须满足一个条件Where 语句与if语句相比在读取数据时更为高效,因其在移动所有观测到子集之前先选择数据。Where语句丰富的表达式where例,65,Output语句,DATA步的每次迭代,后台自动使用output语句,但如果程序中主动加上output语句,即相当于取消自动output语句,变成在条件符合时输出。output例,66,Output语句,用到output语句其他情况:output123例1.从一个输入的数据文件中,创建几个SAS数据集2.从输入的每个数据行中,创建二个或更多个观测3.把几个输入观测组合并成为一个观测后面接名字表示输出到指定数据集,但名字必须也在DATA后出现,67,Call语句,调用其他子程序call routine(parameter-1)如SAS提供一系列随机数子程序发布操作系统命令call system(command)Call例(*)、Call_system例,68,控制语句Do语句(循环语句),DO语句规定,在DO后面直到出现END语句之前的这些语句作为一个单元被执行。简单DO语句,常用在if-then/else语句里循环DO语句,用下标变量规定重复次数do i=1 to 10;do i=1 to exit;do i=2 to 8 by 2;Do_simple例,do例,do_exit例,69,Do while语句,当条件成立时重复执行Do组里的语句Do while(expression);括号里的表达式在Do组里的语句被执行前在循环的开头被计算。如果表达式是真的,Do组被执行Do while例,70,Do until语句,有条件地执行Do组里的语句,在循环的最后而不是在循环的开头计算表达式,如果表达式是真的,Do组就不再被执行。Do组里的语句至少执行一次。Do until例,71,Select语句,允许SAS去执行几个语句或者语句组中的一个。当一个特殊条件为真时,执行对应when语句,如果所有when条件均不成立,选择执行otherwise语句,用end结束Select(when)例,72,If语句,1.形如:IF expression THEN statement;ELSE statement;2.形如:IF variable例:if x then y=x;当变量x的值为0和缺失之外的任意值时表达式均为真If_else例、If_x例,73,Return语句,告诉SAS系统在data步当前这个位置上停止执行语句并在继续执行之前返回到一个预定的位置(通常是data步开头)当return语句使得SAS返回到data步开头时,SAS首先输出当前观测到新数据集中。每个data步都有一个隐含的return语句作为最后一个可执行的语句Return例,74,Go to语句,告诉SAS系统立即转到Go to语句所指示的那个语句,并从那个语句开始执行后面的语句。形如:GO TO label;label规定语句标号来指示Go to的目标,它必须与go to语句在同一个data步Return选项规定返回而不执行下面语句Go to例,75,Link语句(*),形如link label;立即转到由label语句指示的位置,并从那里开始继续执行语句直到一个return语句被执行。与goto语句的区别是:标签内的return语句让SAS立即返回到link语句后面的那个语句并从那里继续执行Link例,76,Continue和leave语句,Continue语句使得某个do循环中当前这次循环过程停止进行,并继续进行下一次循环过程。Leave语句停止当前整个do组循环或select组的处理过程,并用跟在do组或select组后面的下一个语句继续执行data步Continue例,leave例,77,循环的嵌套(*),Do(do)例、select(do)例,78,怎样选择使用不同的控制语句,DO:多次执行同样的代码块DO while:当while条件为真时,多次执行同样的代码块DO until:多次执行同样的代码块,直到until条件为真,代码块总会执行一次SELECT:知道明确的离散选择项时使用IF:希望从2个或多个可能的事件中完成一个,允许连续选择项,79,怎样选择使用不同的控制语句,跳转代码(go to,link):需要暂停主代码,执行“标签”指明的其它代码中止代码(return,continue,leave):负责某种形式的中止。,80,信息语句数组(array)语句,当需要用同一种方法处理很多变量时,可以用数组语句定义这组变量为某个数组中的元素。1.显示下标array语句:由一个数组名字,在数组中元素个数的说明,及元素列表组成。2.隐含下标array语句:由一个数组名字、一个下标变量和列表名组成。,81,显示下标array语句,形如:ARRAY array-name subscript 例 array simple3 red green yellow;array x5,3 score1-score15;array c3等价于array c3 c1-c3array test3 t1 t2 t3(90 80 70)数组中的变量必须全是数值型或字符串型,array例,82,显示下标array语句,规定数组中每一维的上下界:array x1:5,1:3 score1-score15;*表示SAS系统通过数组中变量的个数来确定下标。可用dim(数组名)函数计算数组元素个数。_temporary_建立一个临时数组元素列表array(dim)例,array(temporary)例,array(prod)例,83,隐含下标array语句,形如:ARRAY array-name array-elements 如果没有规定下标变量,SAS系统使用自动变量_i_作为下标变量,下标变量范围从1到这个数组元素的个数如:array x x1-x5Array(s)例,84,Do over语句,Do over 语句对每个数组元素自动地执行Do组中的语句,它等价于 do i=1 to k;其中i是这个数组的下标变量,k是数组元素的个数。Do over语句常用在对隐含下标数组元素执行Do组里的语句Do over例,85,Informat语句,Informat语句把输入格式与变量联系起来,在data步,可以用informat语句对input语句中列出的变量规定缺省时的输入格式informat例,86,Format语句,在data步把变量同输出格式联系起来可以规定缺省选项,如:format default=8.2;Format(informat)例,format_=例,,87,Drop和keep语句,Drop语句:删掉变量语句drop variable-listKeep语句:保留变量语句keep variable-list虽然出现在drop和keep语句中的变量不包含在正被创建的SAS数据集中,但这些变量仍可以用在程序语句中Drop和keep不能同时使用,88,Retain语句,使用retain给变量赋予初值,并保留到读下一个观测retain month1-month5 1retain var1-var4(1,2,3,4)当retain后无变量时,用input或赋值语句创建的所有变量的值,保留上次data步执行的值Retain例、retain2例,89,Attrib语句,在data步内允许用一个attrib语句来规定一个或几个变量的输出、输入格式,标签和长度,即规定变量属性Attrib x label=中国载人飞船 length=4 informat=8.5 format=8.2;Attrib例,90,Window语句,创建用户专用的窗口,可用来显示文字说明或接受输入的数据Window例,91,上机练习1,编制程序:六个变量id d1-d5,数据节选如下:1 2 7 23 100 1000 2 3 33 54 56 10003.4 6 44 100要求:如果相邻数据小于等于7,则置为缺失,数据结果应如下:1.23 100 10002 3 33.10003.44 100,92,上机练习2(ex2例),编制程序:3个变量d1-d3,数据节选如下:1 2 7 2 3.3.4要求:如果发现缺失值,即用该列数据的平均值来代替,数据结果应如下:1 2 7 2 3 5.5 3 2.5 4,93,Proc步的通用语句(Reg例),Proc 用在proc步的开头并规定用户使用的SAS过程名字及其他信息Var规定用这个过程分析的一些变量Model规定在模型中类似表示因变量(左)和自变量(右)的这样一些变量及其他信息Weight规定一个变量,它的值是这些观测的相应权数,94,Proc步及通用语句,Freq规定一个变量,其值表示频数Id规定一个或几个变量,他们的值在打印输出中或由此过程产生的SAS数据集中用来识别观测Where在SAS把观测引入proc步之前,用来选择符合特殊条件的观测Class在分析中指定一些变量为分类变量,95,Proc步及通用语句,By规定一些变量,SAS过程对输入数据集用by变量定义的几个数据组分别进行分析处理Output给出用该过程产生的输出数据集的信息Quit结束交互式的过程其他如Attrib属性语句、format输出格式语句、label标签语句等,96,Transpose(转置过程),Transpose过程完成对sas数据集的转置,即把观测变为变量,变量变为观测。Out选项规定输出数据集Prefix选项规定转置后的变量名前缀Id选项使用其后规定的变量值作为输出数据集中被转置的变量名Transpose例,97,Means均值过程,计算数据集中数值变量的简单统计量T选项:检验数据总体均值为0的假设时,t统计量的值Prt选项:Prob|T|,数据总体均值为0的概率是多少默认生成的_type_和_freq_变量分别规定分组数(如果有)和频率Means例,weight例,freq例,98,Means均值过程,Maxdec选项规定输出结果的小数部分最大位数可以输出的统计量:N,Nmiss,mean,std,min,max,range,sum,var,uss,css,cv(变异系数),stderr,t,prt,sumwgt,skewness(偏度),kurtosis(峰度),clm(置信限),lclm(置信下限),uclm(置信上限),99,Format过程(format_num,char,lowhigh例),使用Format过程把输出格式同Data步、Proc步的变量联系起来。输出格式一:SAS格式输出格式二:Format定义的格式,形如value 格式名 变量值=自定义值;proc;format 变量 格式名.;,100,Format过程,输出格式三:图示输出,只适用于数值型变量,形如picture 格式名 other格式化值;proc;format 变量 格式名.;Format_picture例,101,Plot过程,对数据集中任两个变量的n个观测值画出散点图,第一个变量表示y轴,第二个表示为x轴两种情况:plot y*x=+;(规定一个字符作为作图字符)plot y*x=sex;(作图字符由变量的值给出),102,Plot过程,Vref(Href)要求散布图在垂直(或水平)轴的一些规定值上画水平线(或垂直线)作为参照线/overlap选项:在同一张图上作两个以上的散点图。如:plot y*x a*b/overlay;Plot(函数)例,103,Standard标准化过程,目的是使不同量纲的变量能互相比较Standard过程按给定的均值和标准差对数据集中的变量进行标准化变换,并生成一个包含标准化值的新SAS数据集Mean=mean-value:规定均值Std=std-value:规定标准差Standard例,104,Rank过程,与其研究数值大小不如研究排序的情况该过程把数值从最小到最大排列,对最小值赋予秩1,对第二小值赋予秩2,一直到赋予秩n,即未丢失的观测个数。出现结值(tie)时,其秩可以赋予平均秩或高秩或低秩。Ranks 选项分配求秩后的变量名 Rank例,105,Univariate过程,又称单变量过程,可以求单个变量的大部分统计指标Normal选项:要求对数据服从正态分布(原假设)进行检验。当样本容量2000时,使用D统计量检验,106,Univariate过程,Output out=datasets要求输出包含指定统计量的数据集Pctlpts规定该过程不能自动提供而用户又希望计算的百分位数Pctlpre要求给出百分位数的输出变量名的前缀,pctlname后缀。Univariate例,107,Corr过程,计算变量间的相关系数相关是对两个变量间线性关系强弱程度的一种测度。如果一个变量恰好可表示成另一个变量Y的线性函数,那么相关系数为1或-1,即正相关或负相关。如果两变量间的相关系数为0,这意味着两变量无线性关系。Corr例,108,Options过程,列出SAS系统选项的当前值。SAS系统选项是SAS系统用来控制SAS数据集的处理,输出的格式和内容等的全局选项系统选项的优先次序:options语句配置文件缺省设置例:options nodate;Options(view)例,options例,109,Printto过程,该过程用来定义SAS过程输出和SAS日志输出的地点Print选项规定输出结果存放地点Log选项规定输出日志存放地点New选项表示要覆盖已存在的文件,如无new选项但有已存在的文件名,则在已有的文件内容后追加Printto例,110,Compare过程,该过程用来比较两个SAS数据集中的内容用base和compare选项分别规定待比较的两个数据集Compare例,111,Datasets数据库管理过程,该过程用来对SAS数据库中的SAS文件进行列表、拷贝、更名,添加和删除等操作Datasets是交互过程,可以不断插入并执行该过程的相关语句而不用重复调用Datasets,但可以使用quit语句或另一个proc步或data步来终止此过程Datasets1例,112,Datasets过程,Index create:创建简单或复合索引Pw(read、write、alter):设置密码Repair member-name:在适当情况下试图重新存贮被损坏的SAS数据集或目录Datasets(index)例、datasets(pw)例,113,SQL过程,SQL 结构查询语言(Structured Query Language)是一个标准化的广泛使用的语言,可以检索和更新关系表格和数据库中的数据。关系,类似于数学中的集合概念,实际上被表现为一些排列成行和列的二维表格(关系数据库),114,SQL过程,SQL语句的特征:子句内的项用逗号分开;不需规定Run语句;,115,SQL过程,Select语句用来检索和操作存于表中的数据。(order从句,format选项)Create语句生成表格Update语句增加或修改在表格的列里的数值,Insert和Delete语句插入和删除行,用Alter语句增加、修改、删去列来修改表格。,116,SQL过程,Delete语句从表中删去where表达式为真的所有行Insert to往一个新的或已存在的表中加入新的行Sql例,117,全程语句,Quit,run,endsas:分别为结束、运行SAS语句、关闭SAS系统Title,footnote:添加标题和脚注Filename:对一个外部文件定义标记Libname:对一个SAS数据库定义标记Filename例,libname例,118,全程语句,Missing语句规定表示缺失值的字符,通常出现在data语句中,但其作用范围是全局的。Page语句使得日志跳到新一页Skip语句使得日志跳过规定的行数%include语句从外部文件读出SAS语句或数据行并执行:Missing例,page例,skip例,Include1例,119,Tabulate制表过程(Tabulate例),由分类变量、分析变量和统计量关键词组成的表达式构成描述性统计报表。Tabulate过程的Table语句的操作符(星号、空格、园括号,逗号)1.交叉连接项,即嵌套(使用*号)2.项与项之间的并列连接,即平行(使用空格)3.改变次序(使用园括号),120,Tabulate制表过程,4.产生的报表最多三维:如果包含二维,次序为行、列;如果包含三维,次序为页、行、列。(维表达式间用逗号隔开;)5.用定义Pctn统计量的分母分类变量必须在class语句中说明分析变量必须在var语句中列出,121,Tabulate制表过程,Proc tabulate过程的其他语句1.missing选项:要求把缺失值作为分类变量的有效水平2.order=freq|data|internal|formatted规定报表中分类变量值出现的次序freq:按频数下降的次序data:按原数据集中出现的先后次序internal:按非格式化值的次序formatted:按格式化值的次序,122,Tabulate制表过程,Label语句用来对变量加标签Keylabel语句用来对统计量加标签统计量:N(字符型变量的默认统计量),Nmiss,Mean,Std,Min,Max,Range,Sum(数值型变量默认统计量),Var,Pctn(频数N的百分数,后面参数为列变量则是行百分比,后面参数为行变量则是列百分比)F或format表示输出使用一定的格式,如:a*f=8.2;,123,Tabulate制表过程,全类变量all,当all嵌入某个交叉时,all不考虑分类变量的水平,而用all来生成子集和及总和。如 B*(A all)、(all B)*(all A)Tabulate1例,124,上机练习,按tabulate1例,模拟编制类似数据,练习各种制表方法,125,第五部分SAS/stat 模块,STAT模块的过程介绍,126,Freq过程(freq_cows,_eye例),Freq过程用于产生单向到n向的频数表或交叉表以及针对表格的各种统计量。用星号连接起来的变量,最后一个变量的值形成列,倒数第二个变量的值形成行,其余变量的每一个水平形成一层。如:table a*b*c*d;使用chisq卡方统计量,检验变量间的相关性,原假设为变量间不相关,127,SAS宏,利用宏可以减少在完成一些共同任务时必须输入的文本量利用宏可以使程序模块化,使程序易读、便于修改、移植、方便重复使用,128,SAS宏变量,宏变量属于SAS宏语言,与普通变量的区别是可以独立于DATA步可以在SAS程序中除数据行之外的任何地方定义并使用宏变量%let语句定义宏变量并分配一个值给宏变量(如:%let dsn=3)当引用一个宏变量的值,放&号在宏变量前,12