《SASBASE培训课件》由会员分享,可在线阅读,更多相关《SASBASE培训课件(79页珍藏版)》请在金锄头文库上搜索。
1、SASBASEBASEBY:PAean.wonBY:PAean.wonBY:PAean.won目录目录第一章:SAS系统初识第二章:SAS函数第三章:SAS访问外部数据文件第四章:SAS数据步第五章:SAS过程步第六章:SAS输入输出格式第七章:SAS宏技术第八章:SASSQL查询第九章:SAS数据统计分析第十章:SAS综合运用举例Page 2n第一章第一章SAS 系统初识Page 3SASSAS系统诞生系统诞生 l全称为StatisticsAnalysisSystem,最早由北卡罗来纳大学的两位生物统计学研究生编制l1972研制出第一版,1976年成立了SAS软件研究所,正式推出了SAS软件
2、,现在是9.2版l是用于数据分析与决策支持的大型集成信息系统,统计分析功能是它的重要组成部分和核心功能l国际上的标准软件系统Page 4lBASESAS模块lSAS/STAT-统计分析模块lSAS/ETS-经济计量学和时间序列分析模块lSAS/OR-运筹学模块lSAS/QC-质量控制模块lSAS/IML-交互式矩阵程序设计语言模块lSAS/GRAPH-绘图模块lSAS/FSP-快速数据交互式菜单系统模块lSAS/AF-交互式应用开发模块lSAS/ASSIT-菜单驱动界面模块lSAS/ACCESS-访问外部数据模块lSAS/EIS-企业信息系统模块lSAS/INSIGHT-可视化探索工具模块lS
3、AS/CALC-电子表格模块lSAS/CONNECT-分布式数据处理模块lSAS/WA-企业级数据仓库管理模块lSAS/EM-企业级数据挖掘模块SASSAS功能模块功能模块Page 5命令行菜单栏工具栏窗口条功能窗口SAS工作界面*-重要功能键:F1,F5,F6,F7,F9,CTL+ESASSAS工作界面工作界面Page 6SASSAS两类菜单栏两类菜单栏n菜单栏的下拉菜单nnn操作:点菜单栏中的按钮n弹出菜单n操作:相应窗口点鼠标右键Page 7SASSAS工具栏工具栏 资源管理器窗口工具栏编辑器窗口工具栏Page 8SASSAS 命令命令 在命令行中输入SAS命令可以快速完成一些SAS任务
4、Page 9SASSAS主要功能窗口主要功能窗口 l以“只显示内容”视图显示的“SAS资源管理器”窗口(没有树视图)l“结果”窗口l程序编辑器、增强型编辑器l“日志”窗口l“输出”窗口l“SAS资源管理器”窗口Page 10SASSAS资源管理器窗口资源管理器窗口nSAS资源管理器窗口下,可以执行基本的SAS任务:1、创建新的逻辑库和文件快捷方式;2、创建新的逻辑库成员和目录条目;3、打开和编辑SAS文件。根据操作环境,可以使用以下方法打开“SAS资源管理器”窗口(打开树视图和列表视图):1、菜单:查看=SAS资源管理器2、命令:EXPLORER3、工具栏:SAS资源管理器Page 11SAS
5、SAS结果窗口结果窗口 可以通过结果窗口对程序的输出结果进行浏览和管理1、SAS可以用一种或多种格式(或类型)产生输出。2、默认类型是“列表”输出(如右图的“查询结果”)。3、其他输出类型包括HTML、“输出数据集”和PostScript。Page 12SASSAS 输出类型设置输出类型设置 要设置输出类型,可使用菜单栏=工具=选项=参数选择=“结果”标签,进入参数选择窗口进行设置如下图所示。点选创建HTML时,输出结果同时展现在HTML文件中。Page 13SASSAS增强型编辑器窗口增强型编辑器窗口SAS9.1版本的默认编辑窗口为增强型。它比普通编辑窗口增加了如下功能:l使用特定颜色对SA
6、S程序、SCL程序以及HTML和XML文件的元素进行显示,同时进行相关语法检查。l创建和格式化自定义的关键词。l每个过程步、数据步或者宏的程序段都可以实现展开和收缩的功能,以便对SAS程序的宏观结构有更好的了解。l通过定义缩写来快速输入一段文字。l通过显示行号使得程序代码更具可读性。l设定增强型编辑器的快捷功能键。l同时打开一个文件的多个视图。l将光标停留在语言元素上,按F1就可以直接进入到SAS帮助文档中该语言元素的说明部分,当然有时候该语言元素有多个主题,可以根据需要进行选择。Page 14SASSAS日志窗口日志窗口n“日志”窗口用来查看程序运行信息:l提交的程序语句;l系统消息和错误;
7、l程序运行速度和时间。n“日志”窗口中的元素根据以下类型呈现不同的颜色:l程序行黑色:以语句标号开始;l提示蓝色:以NOTE开始;l警告绿色:以WARNING开始;l错误红色:以ERROR开始。Page 15SASSAS 输出窗口输出窗口 proc print data=sashelp.class;quit;按F8提交程序,SAS界面如下所示:输出窗口用来查看SAS程序的输出结果Page 16SASSAS新建逻辑库新建逻辑库 1、在逻辑库级别,在空白处按右键,选择新建,出现如下界面。2、在名称中输入新的逻辑库名称。3、在引擎中根据数据来源选择不同的引擎,如果只是想建立本机地址上的一个普通的SA
8、S数据集数据库,可以选择默认。4、然后点选启动时启用,在逻辑库信息中,点选路径后面的浏览按钮,选择与这个逻辑库相对应的物理地址。选项窗口可以不填,点击确定产生一个新的逻辑库。Page 17SASSAS程序编辑窗口操作程序编辑窗口操作提交程序可以用增强型编辑器编写程序,也可以将用其它文本编写的程序拷贝到编辑器。程序完成后,直接按F3或者F8提交程序,或点选工具条中的提交按钮,或者在命令框中输入Submit命令。储存程序程序可以保存为其它格式的文本,也可以直接以编辑器的方式来储存,直接点选文件=保存,选择路径就可以保存这些程序。Page 18SASSAS数据集导入和导出数据集导入和导出第一步:点选
9、文件=导出数据,出现如下界面,要求输入要导出文件的逻辑库名称和数据文件名称,比如要导出sashelp逻辑库的class数据文件,通过下拉菜单选择逻辑库和数据文件。Page 19SASSAS数据集导入和导出数据集导入和导出 第二步:点选next,进入到选择输出格式界面。通过下拉菜单选择给定的格式:MicrosoftExcel97,2000or2002workbook,然后点选next.Page 20SASSAS数据集导入和导出数据集导入和导出 第三步:进入到设定输出文件位置和名称界面,通过浏览按钮选择输出位置,并键入输出文件的名称,如E:test.xls.Page 21SASSAS数据集导入和导
10、出数据集导入和导出 第四步:点选ok,进入到SASExportWizard画面,SASExportWizard和后面要介绍的ImportWizard是SAS转换数据文件的工具。在这个画面中,ExportWizard要求对这个输出过程的table命名,这时可以直接选finish完成输出,或者命名为1。Page 22SASSAS数据集导入和导出数据集导入和导出 第五步:如果上一步选择命名,SAS会建立一段与上述窗口操作相同的程序,并提示是否要保存这段程序。Page 23SASSAS对数据的管理对数据的管理 1:SAS对数据的分析与呈现都是面对SAS数据集进行2:SAS数据集是一种SAS文件3:SA
11、S文件是由SAS系统创建和管理的有特殊结构的文件。Page 24SASSAS对外部数据的管理对外部数据的管理 数据直接输入流行的数据库其它文件格式SAS数据集SAS应用程序数据分析过程中用得较少数据挖掘过程中用得较多常用的数据分析获取外部数据TXTEXCELCSVSPSSACCESS;DB2;ORACLEPage 25SASSAS 逻辑库逻辑库 26nSAS逻辑库由一组SAS文件组成。SAS软件系统的信息组织有两层,第一层是SAS逻辑库,第二层是SAS文件。nSAS逻辑库是一个逻辑概念,本身不是物理实体,它对应的实体是操作系统下一个文件夹或几个文件夹中的一组SAS文件。nSAS逻辑库文件用两级
12、命名方式定名:libname.SAS-filenamen(库标记.文件名)SAS数据集SAS数据库nSAS逻辑库有永久库和临时库两种n临时库:名为WORK,系统自动指定n永久库:系统自动指定名为SASUSER,(SASHELP等).其它可由用户指定Page 26SASSAS 创建逻辑库创建逻辑库 逻辑库名是SAS名,长度不能超过8个字节。如SAS逻辑库:ResDat,SASHELP等。建立SAS逻辑库的方法:l 用菜单操作;用菜单操作;l用LIBNAME语句。语句格式:LIBNAMElibrefSAS-data-library语法说明:Libref逻辑库名SAS-data-library逻辑库
13、对应的物理地址Engine引擎名称(缺失时为默认引擎)例例1 用用LIBNAME语句创建语句创建SAS逻辑库。逻辑库。libname zkxr C:DocumentsandSettingsuser桌面中科信软SAS培训逻辑库a;例例2引用非临时库的SAS文件时必须使用两级命名方式,而引用临时库的SAS文件时,可以直接使用文件名,效果等同于work.文件名。data zkxr.a;set d.v;run;Page 27SASSAS 语句语句SAS语句就是一系列关键词、SAS名称、算符以及特殊字符的组合。所有的SAS语句以分号结尾。SAS语句一般分为数据步语句与过程步语句,以及可以用在SAS程序任
14、何地方的全局通用语句。KEYWORD parameteroptions;关键词关键词参数选项;其中:粗体-必须按显示形式书写的关键词;白正体-用户提供的信息;-括号内的信息可选;|-任选。参数PARAMETER不是任选项,不用括号,OPTIONS是选项关键词。Page 28SASSAS语名举例语名举例 例例2.5 有效的有效的SAS语句。语句。datadata1;/*data为关键词,data1为SAS名*/data_null_;/*_null_为SAS名*/putname$8.;/*put为关键词,name为SAS名,$8.为输出格式*/formatdateyymmdd10.;proc me
15、ansdata=ResDat.class;/*proc为关键词,means为过程名*/infile“d:ResDatclass.txt”;doI=1to100;x=y+1;sumx+x;run;Page 29SASSAS optionsoptions选项选项 n系统选项用来控制SAS的运行方式,如SAS系统启动,硬件软件的连接,SAS程序的运行等。n语句格式:nOPTIONSoption(s);noption设定一个或多个系统选项,任何系统选项都有一个默认设置。n例例: 设定选项设定选项nOPTIONSobs=5;/*取数据集前五个观测*/nDataone;nSetResDat.class;n
16、Run;Page 30SASSAS 表达式表达式 n表达式由一系列操作符和操作对象构成,产生一个目标值。n使用表达式可以对变量作变换和赋值,创建新变量,计算新数值以及控制条件语句的运行等。n操作对象有:操作对象有:l变量;l常数。操作符包括:操作符包括:l算术算符;l比较算符;l逻辑算符;lSAS函数;l括号。Page 31SASSAS 常数常数 nSAS常数是SAS系统可以识别的一些固定值。1.数值常数。数值常数。1,5,1.23,1.2E23,2E4,20000数值常数可以有多种格式展示。标准格式标准格式:1,01,+1,-1,1.1;科学计数法:科学计数法:1.1e11,1.2e-12;
17、十六进制格式:十六进制格式:1cx,12x,9x2.引用带引号的字符常数。引用带引号的字符常数。name=TOM”S;name=”TOMS”;/*例中,两语句等价。*/要注意的是,字符常数是由引号括起来的,但是字符变量的名称则没有引号,也就是说字符常数不能作为字符变量的名称。3.引用日期时间常数。引用日期时间常数。1jan2000d;01jan00d;9:25t;18jan00:9:27:25dtifbegin=01JAN2000dthenend=31DEC2000d;Page 32SASSAS 算符算符 nSAS算符是一些符号,其作用是进行计算、比较等。算术算符应用。data;X=3.5*2
18、.5;putX=;Y=9+1/3;putY=;X=.;Y=1+X;putY=;/*Y也是缺失值*/run;X=22.917651494Y=9.3333333333Y=.比较算符应用。ifxythenc5;elsec12;比较算符经常出现在IF语句里。比较准则:l数值和字符都可以比;l结果为真赋值1,假赋值0;l字符值从左到右逐个按ASCII码排列序列进行比较;l缺失值参加比较时,它比任何有效值都小。Page 33SASSAS 算符算符 逻辑算符算符等价形式含义AND与|OR或NOT非字符串连接符:包括|!等data_null_;a=中华;b=人民;c=共和国;x1=a|b|c;x2=abc;x
19、3=a!b!c;putx1;putx2;putx3;run;输出结果:中华人民共和国中华人民共和国中华人民共和国Page 34n可以看到这些连接符输出结果完全一致,只是单纯的连接,不会对空格进行特殊处理。但有时需要对空格进行处理。常用的字符连接函数包括以下几个:常用的字符连接函数包括以下几个:ntrim():去掉字符串尾部空格,如果字符串为空,则返回一个空格nleft():把字符串开头的空格移到尾部nstrip():去掉字符串开头和结尾的所有空格ncat():与|作用类似,保留首尾全部空格ncatt():但是连接之前会去掉各字符串尾部空格,相当于连接符结合trim()使用ncats():但是连
20、接之前会去掉首尾全部空格,相当于连接符结合strip()使用ncatx():但是连接之前会去掉首尾全部空格,并且在字符串之间加上一个指定的字符串SASSAS 算符连接函数算符连接函数 Page 35ndata_null_;a=中华;b=人民;c=共和国;x1=trim(a)|trim(b)|trim(c);x2=left(a)left(b)left(c);x3=strip(a)!strip(b)!strip(c);x4=cat(a,b,c);x5=catt(a,b,c);x6=cats(a,b,c);x7=catx(我爱,a,b,c);putx1=/x2=/x3=/x4=/x5=/x6=/x7
21、=;run;SASSAS 算符连接函数算符连接函数 x1=中华人民共和国x2=中华人民共和国x3=中华人民共和国x4=中华人民共和国x5=中华人民共和国x6=中华人民共和国x7=中华我爱人民我爱共和国Page 36SASSAS 变量变量 nSAS变量分为数值变量和字符变量。n数值变量n数值变量是SAS系统以浮点(floating-point)方式存储的数据变量,数值变量包括日期和时间。n数值变量的值只能是数值。n字符变量n字符变量可以由阿拉伯字母、数字0-9以及其它一些特殊字符组成。n字符变量的值可以是字符、字母、特殊字符和数值。字符变量名后跟一个美元号($)表示该变量是字符型而不是数值型。P
22、age 37SASSAS 创建变量的方式创建变量的方式 使用赋值语句nDataa;nx=1;nrun;n/*数据集a中有个变量x,值为1*/使用INPUT语句nDatab;nInputx$;nDatalines;nAaanBbbn;nRun;使用FORMAT或INFORMAT语句Datab;Setb;Informaty$9.;Run;以类似的方式创建变量的还有LENGTH语句,ATTIRB语句。Page 38SASSAS n输出格式format是SAS用来确定如何输出或写出数据值的指令,用FORMAT控制数据值在输出时所使用的格式。n输入格式informat是SAS用来确定如何将数据读入变量的
23、指令。n如果在输入或输出数据集的过程中没有设定变量的输入和输出格式,系统会自动使用原数据集中的这个变量原有的输入输出格式。语句格式:format.informat.格式说明:$指定为字符格式,如果该项空缺,则默认是数值格式format规定有效SAS输出格式Informat规定有效SAS输入格式w设定输入输出的长度,一般来说是数据所占的列的数目d设定数值数据中小数点的位数Page 39SAS SAS 变量类型转换变量类型转换nA.字符型变量转换为数值型变量n1.将字符型变量进行算术运算;n2.INPUT(数据源,输入格式);nB.数值型变量转换为字符型变量n1.将数值型和字符型变量连接;n2.使
24、用函数如SUBSTR,left,right等;n3.PUT(数据源,输出格式);dataa;inputx6.y$8.;cards;123454564423221211333111345.3;run;/*A.字符型变量转为数值型变量*/dataa;seta;z1=y+0;z2=input(y,8.);run;/*B.数值型变量转为字符型变量*/dataa;seta;m1=a|x;m2=left(x);m3=put(x,$8.);run;Page 40变量列表缩写备注X1X2XnX1-XnX1Xn的所有变量,中间是一横XAXBXYX:取所有以X为开头的变量假设数据集中有六个变量:XYZABC被先后
25、输入,分析过程中,只分析前四个变量.X-AXA的所有变量,中间是两横X_numeric_AXA的所有数值型变量X_character_AXA的所有字符型变量_numeric_SAS数据集内所有的数值型变量_character_SAS数据集中所有的字符型变量_ALL_SAS数据集中的所有变量_N_预测序号SAS SAS 自动变量自动变量data b;seta;keep_numeric_;run;data c;seta;keep_character_;run;/* 只保留数据集中的数值变量*/* 只保留数据集中的字符变量*/Page 41SASSAS 程序书写规则程序书写规则 nSAS语句的书写规
26、则灵活自由:语句可在行的任一列开始;一个语句可以分写为多行;多个语句可以写在同一行;语句中各项之间至少用一个空格或特殊字符隔开;n应遵守的书写规则:不同程序步间留空行;每条语句都要另起行。比较规范的书写有助于阅读和检查,还可以减少书写错误。n注释语句的两种格式:/*注释内容*/*注释内容;Page 42第二章第二章 SAS函数Page 43SAS函数定义SAS函数是一个子程序,对自变量返回一个结果值。SAS函数的形式:函数名(X1,X2,)函数用于组合表达式可以简化编程和统计计算例:表达式中用函数。dataa(keep=dateydmin);/*保留date,y,d,min四个变量*/setR
27、esDat.idx000001;y=year(date);/*函数year给出变量date年份*/d=weekday(date);/*函数weekday给出变量date在一周内的哪一天*/min=min(sum(oppr,hipr,lopr,clpr),1000);run;Page 44SASSAS 例用与不用SAS函数时的程序。在不用SAS函数的情况下:totx=xl+x2+x3+x4+x5+x6+x7+x8+x9+x10;iftotx1996;/*Where语句中使用Year函数*run;Page 45SASSAS 函数自变量函数自变量 自变量类型:变量名;常数;函数;表达式。例函数及其自
28、变量类型举例。Page 46SASSAS 函数自变量函数自变量 自变量个数:有些函数不需要自变量,有些只需要一个自变量,有些函数有多个自变量。SAS9.1中,自变量个数不能超过32767。如果函数的自变量是表达式,在函数被调用之前,所有表达式自变量首先计算。自变量表示法:当函数有多个自变量时,必须用逗号分隔开。自变量名缩写方法:函数名(OF变量名1变量名n)Page 47SASSAS 函数自变量函数自变量 例正确与错误的表示方法。例数组元素自变量的缩写方法。arrayy10y1-y10;/*定义数组y10*/x=sum(ofy*);z=sum(ofy1-y10);例中,两个SUM函数的表示法是
29、等价的。Page 48SASSAS 函数结果函数结果 通常函数的结果由其自变量的属性决定:自变量是字符时结果变量为字符;自变量是数值时结果变量为数值。PUT函数是一个例外,它不管自变量是什么类型,其结果总是字符值。Page 49SASSAS用用PUTPUT语句在语句在LOGLOG窗口显示函数值窗口显示函数值例显示概率值和分位数。data;Y=probnorm(1.96);/*标准正态分布小于1.96的概率*/putY;q1=tinv(.95,2);/*自由度为2的t分布的0.95分位数*/q2=tinv(.95,2,3);/*自由为2,非中心参数为3的t分布的0.95分位数*/putq1=q2
30、=;run;结果结果:0.9750021049q1=2.9199855804q2=13.894376071Page 50SASSAS 日期函数日期函数 SAS日期和时间存贮标准是以1960年1月1日0时0分0秒为起点,然后以相应的间隔记时。如1960年1月1日9时0分,按日记的数值就是0,按小时记的数值就是9。1960年1月2日0时0分,按日记的数值就是1,按小时记就是24等。由于日期函数是一类非常重要的函数,特别是对金融数据处理和金融计算,借助日期函数可以极大提高效率。Page 51SASSAS日期函数日期函数 例计算两个日期之间的天数。data_null_;sdate=01jan2002d
31、;edate=01jan2003d;actual=datdif(sdate,edate,act/act);/*按每个月的实际天数算*/days360=datdif(sdate,edate,30/360);/*按每个月30天计算*/putactual=days360=;run;data_null_;actual=datdif(01jan2002d,01jan2003d,act/act);days360=datdif(01jan2002d,01jan2003d,30/360);putactual=days360=;run;例中,两段程序的结果一样。actual=365,days360=360.Pa
32、ge 52SAS SAS 日期函数日期函数 例 以日为单位计算当前日期的天数。data;x=date (); y=today();put x= y=;run;例例中中,DATE()和和TODAY()结结果果一一样样,都都是是返返回回当当天天的的天天数数。当当然然,也也可可以以用用一一定定的的日日期格式表示它们。期格式表示它们。data;x=date (); y=today();format x y yymmdd10.;put x= y=;run;例 计算日期值所在的年季月以及处于某月的第几天。data _null_;sdate=01jan2002d;year=year(sdate);qtr=q
33、tr(sdate);month=month(sdate);day=day(sdate);put year= qtr= month= day=;run;结果显示:x=17232y=17232结果显示:x=2007-03-07y=2007-03-07结果显示:Year=2002qtr=1month=1day=1Page 53nPROCFREQoptions;n选项说明:nORDER=选项及说明SASSAS 频数分析过程频数分析过程Page 54SASSAS频数分析频数分析nFORMCHAR(1,2,7)=符号串:1规定垂直线字符;2规定水平线字符;7规定水平与垂直交叉线字符。nn通常情况下的FOR
34、MCHAR=选项:nFORMCHAR(1,2,7)=|-+;nn表格没有轮廓线和分隔线的FORMCHAR=选项:nFORMCHAR(1,2,7)=;/*三个空格*/Page 55SASSAS频数分析过程频数分析过程 procformat;value$weekb周一=monday周二=tuesday周三=wednesday周四=thursday周五=Friday;/*按数据输出值的格式排序*/procfreqdata=s.regorder=formatted/*formatted,freq,data,internal*/;tableweek;formatweek$weekb.;run;/*按频数
35、的降序排序*/procfreqdata=s.regorder=freq/*formatted,freq,data,internal*/;tableweek;formatweek$weekb.;run;/*按数据集中数据出现的次序排序*/procfreqdata=s.regorder=data/*formatted,freq,data,internal*/;tableweek;formatweek$weekb.;run;Page 56nWEIGHTvariable;n该语句规定一个WEIGHT变量,它的值表示相应观测的权数。该变量的值应大于零。若这个值0或缺失,假定该值为0。nBYvariabl
36、e-list;n对BY变量定义的观测组分别计算其相应的简单统计量。当使用BY语句时,要求输入数据集已按BY变量排序的次序排列,除非指定NOTSORTED。nOUTPUT语句:OUTPUT;v该语句创建一个由PROCFREQ过程输出统计量的SAS数据集。OUTPUT创建的数集可以包括由TABLES语句规定的任意统计量。vPROCFREQ过程每一次只允许使用一个OUTPUT语句。当规定多个TABLES语句时,OUTPUT语句创建的数据集内容对应于最后那个TABLES语句,当一个TABLES语句中规定多个表时,OUTPUT创建的数据集内容对应于最后那个表。选项说明:OUT=规定输出数据集;outpu
37、t-statistic-list规定输出数据集中所包含的统计量。SASSAS 频数分析过程频数分析过程Page 57SASSAS 频数分析过程举例频数分析过程举例 dataa;doI=1to1000;X=int(ranuni(8888)*3)+1;Y=int(ranuni(8888)*4)+1;output;end;run;procfreqdata=a(drop=i);*tablexy;/*对所有变量进行频数分析时,不要该句和要该句效果一样*/title没有TABLES语句;run;procfreq;tablesxx*y/chisq;run;procfreq;tablesx*y/list;ru
38、n;产生区间0,1上均匀分布的随机数1000个,分别将区间0,1均分成3和4个小区间,并把产生的随机数按所属区间转换为整数。然后对这些整数作频数分析。Page 58n均值过程(MEANS)用于计算变量的基本描述统计量。SASSAS均值过程均值过程 PROCMEANS;BYvariable-1.variable-n;CLASSvariable(s);FREQvariable;IDvariable(s);OUTPUT;TYPESrequest(s);VARvariable(s);WAYSlist;WEIGHTvariable;Page 59SASSAS 均值过程均值过程Page 60nPROCME
39、ANS;noption-list选项说明:SASSAS 均值过程均值过程ALPHA=规定置信区间的显著水平DATA=规定输入数据集NOPRINT不输出任何描述统计量MISSING规定把CLASS变量的缺失值作为有效分组值处理DESCENDING规定输出数据集是按_TYPE_值降序(缺省是上升)排列,选择NWAY时该选项无效Page 61nORDER=选项及说明:nVARDEF=选项及说明:SASSAS 均值过程均值过程Page 62nstatistic-keyword-list选项就是均值过程可以计算的描述统计量。规定的关键词可以分为三类:n描述统计量关键词;n分位数关键词;n假设检验关键词。
40、SASSAS 均值过程均值过程procmeansdata=s.regmaxdec=2meannmaxminrangestdalpha=.05clmfw=8;varwaitquit;classweek;outputout=amean=mean_wmean_qn=n_wn_qmax=max_wmax_qmin=min_wmin_qrange=range_wrange_qstd=std_wstd_q;run;Page 63SASSAS单变量过程单变量过程 n单变量过程(UNIVARIATE)除了能计算均值过程的基本统计量外,还可以实现的计算和功能有:稳健性估计量;描述变量的分布图;频数表;多项检验。
41、PROCUNIVARIATE;BYvariable-1.variable-n;CLASSvariable-1variable-2;FREQvariable;HISTOGRAM;IDvariable(s);INSET;OUTPUTstatistic-keyword-1=name(s);PROBPLOT;QQPLOT;VARvariable(s);WEIGHTvariable;Page 64SASSAS nPROCUNIVARIATEDATA=SAS-datas-et;n选项说明:nVARDEF=选项及说明:Page 65SASSAS应用单变量过程进行多变量分析应用单变量过程进行多变量分析proc
42、univariatedata=s.regfreqnormalplot;varwaitquit;classweek;outputout=testmean=mean_wmean_qstd=std_wstd_qpctlpts=255075pctlpre=ab;run;Page 66SASSAS 拟合密度曲线拟合密度曲线 第一步:创建一个数据集,随机生成一列正态分布和指数分布数据.datadistrdata;dropn;labelnormal_x=NormalRandomVariableexponential_x=ExponentialRandomVariable;don=1to100;normal_
43、x=10*rannor(53124)+50;exponential_x=ranexp(18746363);output;end;run;Page 67SASSAS procunivariatedata=distrdatanoprint;varNormal_x;histogramNormal_x/normal(color=yelloww=3midpercentsnoprint)cbarline=redcfill=green;insetnmaxminmeanstdnormal(ksdpval)/pos=neformat=6.3;title100ObsSampledfromaNormalDistri
44、bution;run;Page 68SASSAS procunivariatedata=distrdatanoprint;varExponential_x;histogram/exp(filll=3)cfill=yellowmidpoints=.05to5.55by.25;title100ObsSampledfromanExponentialDistribution;run;Page 69SASSAS综合运用举例综合运用举例第十章第十章Page 70n目的:从同一个文件夹中批量导入结构相同的目的:从同一个文件夹中批量导入结构相同的TXT文档到逻辑库文档到逻辑库,并合并为一个数据集。并合并为一个
45、数据集。SASSAS /*第一步:用批量上传的过程*/%macro directory(dir=); /*批量导入TXT文件数据临时数据集, */%let rs=%sysfunc(filename(filref,&dir);%let did=%sysfunc(dopen(&filref);%let nobs=%sysfunc(dnum(&did);%do i=1 %to &nobs.; %let name=%qscan(%qsysfunc(dread(&did,&i),1,.); %let ext=%qscan(%qsysfunc(dread(&did,&i),-1,.); proc impo
46、rt out=&name. datafile=&dir.&name.&ext dbms=tab replace; getnames=yes; datarow=2; delimiter=|*|; run;%end;%let rc=%sysfunc(dclose(&did);%mend;%directory(dir= txt所在文件夹的物理路径 );Page 71SASSAS %macro append(out=);proc contents data=_all_ out=m.a;run;proc sql;select distinct MEMNAME into: ndatasetname sep
47、arated by from m.a;quit;%put &ndatasetname.;%let i=1;%do %until (%scan(&ndatasetname., &i., )=);%let dataset=%scan(&ndatasetname., &i., );%put &dataset.;%let dsid=%sysfunc(open(&dataset.,i);%let phone=%sysfunc(varname(&dsid.,1);*%let msm=%sysfunc(varname(&dsid.,7);%let name=%sysfunc(varname(&dsid.,7
48、);%let gender=%sysfunc(varname(&dsid.,10);%let cardname=%sysfunc(varname(&dsid.,13);%let callin=%sysfunc(varname(&dsid.,16);%let date=%sysfunc(substr(&dataset.,19,8);%put &phone.;*%put &msm;%put &name.;%put &gender.;%put &cardname.;%put &callin.;Page 72SASSAS 1 1、批量导入并合并批量导入并合并%let rc=%sysfunc(close
49、(&dsid.);data t.&dataset.;set &dataset.(keep= &phone. /*&msm.*/ &name. &gender. &cardname. &callin. );length &cardname. $31.;rename &phone.=phone /*&msm.=msm*/ &name.=name &gender.=gender &cardname.=cardname &callin.=callin;if length(&phone.)8 then delete;date=&date.;run;%if &i.=1 %then %do;data t.&
50、out.;set t.&dataset.;run;%end;%else %do;proc append base=t.&out. data=t.&dataset. force;run;%end;proc delete data=t.&dataset.;run;%let i=%eval(&i.+1);%end;%mend append;%append(out=open_card)Page 73SASSAS 2 2、多级查询举例多级查询举例Page 74IDWT1WT2WT3WT4WT5WT6E001155158162149148147E002110112114107108109E00312713
51、1119115141122E004188174169166178182SASSAS 3 3、ARRAYARRAY转置数据转置数据IDCONTIMEWEITHGE00111155E00112158E00113162E00121149E00122148E00123147E00211110E00212112E00213114E00221107E00222108E00223109E00311127E00312131E00313119E00321115E00322141E00323122E00411188E00412174E00413169E00421166E00422178E004231821、很多时
52、候,做数据分析时,需要数据集在上面两种形式下进行相互转换。2、即一个观测到多个预测;或是从多个观测到一个观测之间的转换。3、遇到这种情况时,可以考虑通过ARRAY数组来完成。Page 75一个观测转换成多个观测一个观测转换成多个观测%macro array(name);proc import out=s.array_&name. datafile=C:Documents and Settingsuser桌面中科信软SAS培训逻辑库barray.xlsdbms=excel replace;sheet=&name.;run;%mend array;%array(one);%array(two);d
53、ata s.array_one_a;set s.array_one;array weight2,3 wt1-wt6; do con=1 to 2; do time=1 to 3; weights=weightcon,time; output; end; end;drop wt1-wt6;run;Page 76多个观测转换成一个观测多个观测转换成一个观测proc sort data=s.array_two;by id con time; run;data s.array_two_a;array WT1:2,1:3 wt1-wt6;retain WT1-WT6;set s.array_two;by id;if first.id then do i=1 to 2; do j=1 to 3; WTi,j=.; end ; end;WTcon,time=weight;if last.id then output;keep ID WT1-WT6;run; DATA s.array_two_b;retain id;set s.array_two_a;run;Page 77讲一次等于学习3次BY:PAean.wonBY:PAean.wonBY:PAean.won好书推荐好书推荐SAS公司出版的Thepowertoknow全英文系列丛书谢 谢Page 79