医用SAS统计分析专家讲座_第1页
医用SAS统计分析专家讲座_第2页
医用SAS统计分析专家讲座_第3页
医用SAS统计分析专家讲座_第4页
医用SAS统计分析专家讲座_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SAS软件介绍SAS发展概述SAS(StatisticalAnalysisSystem)是一个管理数据、分析数据和编写打印各种形式汇报组合软件系统,是国际上非常流行统计分析软件之一。1985年,美国SAS研究所推出了能够在微机上运行SAS/PC版本,今后,又不停出新版本,功效不停增强,越来越多人在用它进行统计分析同时,也把它用作数据管理软件。在英美等国,能熟练使用SAS进行统计分析是许多企业和科研机构选材条件之一。美国FDA新药审批程序中,新药试验结果统计分析要求只能用SAS进行,当前已到SAS9.0版本。9/12/20261医用SAS统计分析专家讲座第1页视窗管理系统数据步语句基本过程统计过程绘图过程全屏幕数据处理矩阵计算过程时间序列分析运筹学分析质量控制DMSDATABASESTATGRAPHFSPIMLETSORQC图1SAS基本组成SAS基本组成9/12/20262医用SAS统计分析专家讲座第2页SAS特点1.语言编程能力强。SAS语言含有普通高级语言一切功效,有100多个函数,有完成各种操作算符,能读各种类型数据,能够使用赋值语句、条件语句、数组和循环语句等对变量进行操作。SAS程序书写自由简练。2.分析方法丰富。由SAS基本组成可见,SAS聚集了大量统计方法,从简单描述统计量计算到多原因分析,从时间序列分析到质量控制等。仅SAS/STAT就包含了8类方法28个分析过程。9/12/20263医用SAS统计分析专家讲座第3页3.对数据连续处理。SAS能同时处理多个输入文件,能从几个数据集中组合变量值、观察值,建立子集,连接、合并和修改数据。SAS可存放一个正当结果或中间结果,方便以后使用。4.可组合性。因为SAS是模块式结构,用户可按自己要求,在SAS/BASE基础上选择适当模块,以组成自己需要系统。9/12/20264医用SAS统计分析专家讲座第4页SAS程序和SAS数据集安装直接开启SAS安装界面开启由程序栏开启。

由run命令开启由文件名直接开启建立桌面快捷方式直接开启9/12/20265医用SAS统计分析专家讲座第5页界面(显示管理系统):三个基本窗口PROGRAMEDITOR编辑窗:编辑SAS程序LOG统计窗:程序运行过程、时间、错误信息(红色显示)OUTPUT结果输出窗:当程序运行无误,且有结果输出时显示其它:var窗(显示指定数据集相关SAS变量信息)、keys窗(功效键窗)、libname窗(显示当前SAS库名字和路径)等。以上窗口在command命令行输入对应命令激活9/12/20266医用SAS统计分析专家讲座第6页"Command===>”命令行

位于每个窗口上方,在options下拉菜单中Preference对话框中激活Commandline即可出现。在箭头后输入相关命令后并回车即可执行。如:keys:进入功效键窗口clear:去除光标所在窗口中显示内容bye:退出SAS系统,回到Windows系统num:程序编辑窗口出现行号,再键入num行号消失9/12/20267医用SAS统计分析专家讲座第7页SAS运行菜单"File”调用、储存、打印文件"Edit”用于编辑文件"Local”用于运行本机文件其中:Submit是运行程序,Recall是调回前面用过程序。"Globals”可供选择窗口"Options”选择SAS功效"Help”可随时提供帮助咨询9/12/20268医用SAS统计分析专家讲座第8页菜单下方工具条

Submit(运行),New(新文件),Open(打开文件),Save(储存文件),Print(打印),View(预览),Cut(裁剪),Copy(复制),Paste(粘贴),Undo(恢复),DOSPrompt(DOS方式),Browse(连接英特网),Libraries(库),SAS/Assist(应用SAS/ASSIST模块),Help(提供帮助)9/12/20269医用SAS统计分析专家讲座第9页SAS文件系统*.sd2SAS数据集(6.12版),8.0以上版为*.sas7bdat*.sasEDITOR视窗输出SAS程序文件*.logLOG视窗输出文件*.lstOUTPUT视窗口输出文件9/12/202610医用SAS统计分析专家讲座第10页SAS中惯用变量

数值型变量

变量名有1—8个字符组成,以英文字母开头,其余能够是英文字母、数字或下划线,不能有空格。如AGE,X2,X1_1,等都是正当,1X,XY-1,X1,等都是不正当。

变量值过大或过小数可用科学记数法,如:1.785E-19即为1.785×10-19。字符型变量

字符型变量在变量名后加"$”号表示,如NAME$,SEX$等。一个字符变量是由1-200个字符组成字符串,如:ZhangHua,M等都是一个字符变量。9/12/202611医用SAS统计分析专家讲座第11页SAS运算符与惯用函数算术运算符

﹡﹡(乘方)﹡(乘)/(除)+(加)﹣(减)比较运算符=或EQ(等于)^=或NE(不等于)>或GT(大于)>=或GE(大于等于)<或LT(小于)<=或LE(小于等于)逻辑运算符AND或&(逻辑与)OR或|(逻辑或)NOT或^(逻辑非)

如A>25&B>30;A>25|B>30;NOT(A>3)

惯用函数ABS(x)—x绝对值;SQRT(x)—x平方根;EXP(x)—e(2.71828)x次方;LOG(x)—x自然对数(以e为底);LOG2(x)—x以2为底对数;LOG10(x)—x普通对数(以10为底)9/12/202612医用SAS统计分析专家讲座第12页SAS程序结构:由三部分组成;SAS语句以一个关键词开始,以分号(;)结束。数据步

以data语句开始,用于创建和处理数据集。Data语句功效:(1)标志数据步开始;(2)命名将要创建SAS数据集。data语句格式:data数据集名;Input语句功效:(1)读入由语句指定数据列;(2)为对应数据域定义变量名;(3)确定变量读入模式。Input语句格式:input变量名[变量类型];Cards语句:标志数据块开始。格式为:cards;9/12/202613医用SAS统计分析专家讲座第13页dataesr;

/*建立暂时数据集esr.sd2,自动放在saswork子目录下*/Inputx;/*指明要输入变量*/Cards;

/*标志数据区开始*/

39865573108104;9/12/202614医用SAS统计分析专家讲座第14页过程步

以PROC语句开始,对数据进行分析和处理时,需要调用SAS过程,SAS过程是一系列应用程序。语句格式:PROCSAS过程名[选项];惯用[选项]为:data=数据集名

如:procprint;/*调用现成SAS过程,进行统计分析*/提交程序步

Run;/*在程序最终,指示过程步或数据步结束,能够提交程序*/9/12/202615医用SAS统计分析专家讲座第15页

Log窗输出9/12/202616医用SAS统计分析专家讲座第16页

Output窗输出9/12/202617医用SAS统计分析专家讲座第17页程序运行---在编辑窗输入程序后点击图标按功效键“F8”在命令行(窗)键入“submit”在local下拉菜单中选“submit”窗口内容保留----激活窗口后在命令行(窗)键入file‘路径\文件名’点击图标在file下拉菜单中选“save”或“saveas”只有编辑窗口(edit窗)才能打开文件9/12/202618医用SAS统计分析专家讲座第18页惯用快捷键F1Help命令,进入帮助视窗。F4recall命令,用于edit窗,将前面提交程序调回,可屡次使用。F5切换到edit视窗。F6切换到log视窗。F7切换到output视窗。F8submit命令。F9Keys命令,进入功效键视窗。Ctrl-E去除当前窗口内容。edit窗被去除内容不能用F4调回。9/12/202619医用SAS统计分析专家讲座第19页SAS数据集建立---用input和cards语句直接输入datachild;/*建立暂时数据集child.sd2,自动放在saswork子目录下*/inputidx1$x2x3x4x5x6;/*指明要输入变量,$为字符型变量*/cards;/*标志数据区开始,数据之间以一个或几个空格分隔*/1m3295.514.053.549.642m3592.013.052.041.613m3389.012.553.535.81254m176168.053.582.0100.14255f3091.011.048.035.39256f3391.011.547.044.98521f178163.051.079.087.42;/*标志数据区结束,分号必须单独一行*/run;9/12/202620医用SAS统计分析专家讲座第20页SAS数据集建立---数据读入dataa1;inputidx1$x2x3x4;cards;1m3295.52m3592.013.03m3389.012.5;procprint;run;结果:OBSIDX1X2X3X411m3295.52.023m3389.012.5dataa1;inputidx1$x2x3;cards;1m3295.52m3592.013.03m3389.012.5;procprint;run;结果:OBSIDX1X2X311m3295.522m3592.033m3389.09/12/202621医用SAS统计分析专家讲座第21页不分行符@@使用dataesr;inputx@@;/*每读入一条统计后,数据指针保持原位不换行,

继续读下一条统计*/cards;39865573108104;procmeans;run;

结果:AnalysisVariable:XNMeanStdDevMinimumMaximum----------------------------------------------------------126.50000002.54057973.000000010.0000000----------------------------------------------------------9/12/202622医用SAS统计分析专家讲座第22页SAS数据集建立缺失值输入---以.表示,缺失值不进入分析datachild;inputidx1$x2x3x4x5x6;cards;1m3295.514.053.549.642m35.13.052.041.613m3389.012.553.535.81254m176168.053.582.0100.14255f3091.011.048.035.39256f3391.011.547.044.98521f178163.051.079.087.42;procmeans;run;9/12/202623医用SAS统计分析专家讲座第23页SAS数据集建立结果VariableNMeanStdDevMinimumMaximum--------------------------------------------------------------ID7184.5714286194.96397711.0000000521.0000000X2773.857142970.477960130.0000000178.0000000X36116.250000038.241012089.0000000168.0000000X4723.785714319.482593011.000000053.5000000X5759.285714314.736171947.000000082.0000000X6756.427142926.254044635.3900000100.1400000--------------------------------------------------------------9/12/202624医用SAS统计分析专家讲座第24页SAS数据集建立---永久数据集和暂时数据集SAS数据集名称表示方式:两级文件名定义库关联名:libname命令libname库关联名‘盘符:\路径’;

如:libnamedw‘c:\teach’;路径必须实际存在。库关联名.数据集名:如dw.esr暂时数据集:存放在sas\saswork子目录中数据集,一旦退出sas,会被自动删除。它库关联名默认为work,均省略不写。前面所生成数据集都是暂时数据集,退出sas后都会被删除。永久数据集:经过两级文件名形式,将生成数据集存放到saswork以外路径中(库关联名所指向路径),即能够生成永久数据集。即使退出SAS也还存在,可供以后调用。例:libnamedw‘c:\teach’;datadw.esr;inputx1x2x3;(略)9/12/202625医用SAS统计分析专家讲座第25页从已建立SAS数据集中读入数据建立新SAS数据集---set命令libnameL‘c:\teach’;dataL.child;setchlid;procprint;run;

dataa;setL.child;procprint;run;datab;seta;run;注:Proc步操作对象总是最新生成SAS数据集。只有proc步时,也可经过在proc语句后加data=指定要分析数据集。如:procmeansdata=L.chlid;run;9/12/202626医用SAS统计分析专家讲座第26页SAS数据集建立---从其它数据集转入利用file下拉菜单中import功效,直接将其它类型数据文件,转为SAS数据集。可转入:文本型数据文件(*.txt)可用Notebook(记事本)输入数据,首行为变量名,制表键(Tab)分隔。dbaseII和III数据库文件(*.dbf)excel数据库SAS8.0以上可转入Excel97及数据库,用Excel输入数据,首行为变量名。9/12/202627医用SAS统计分析专家讲座第27页有数据可经过粘贴方法贴到edit窗后,加入input和cards等语句,生成sas数据集。用infile语句建立SAS数据集

语句格式infile‘盘符:\文件夹\文件名.txt(或dat)’;

首先用任何文字处理软件来建立一个数据文件,但一定用纯文本格式保留。该纯本数据文件是不包含变量名,必须知道那一列数据是哪一个变量值,调用使用inputx1x2┄指明。9/12/202628医用SAS统计分析专家讲座第28页例

新建纯文本文件"xy”,路径为e:\sas\xy.txt。数据为:5634573558365937603861396240634164436128dataLi_1;infile'e:\sas\xy.txt';inputxy@@;procprint;run;OBSXY1563425735358364593756038661397624086341964431061289/12/202629医用SAS统计分析专家讲座第29页SAS数据集整理---变量操作变量重命名:rename旧变量名=新变量名;

如renameid=x0;变量赋值或修改变量值:

变量名=表示式;如y=log10(x);累加语句

累加变量+表示式

累加语句能把语句中表示式运算结果或变量值累加到累加变量上,并作为统计送到数据集中。

累加变量必须是数值型,表示式是符合SAS语言规则表示式。累加变量初始值由系统自动设置为零。9/12/202630医用SAS统计分析专家讲座第30页例dataabc;inputabc@@;sum=a+b+c;sumz+sum;cards;2122265741236716231923;procprint;run;OBSABCSUMSUMZ121222669692574168531236211064716234615251923241769/12/202631医用SAS统计分析专家讲座第31页用keep或drop语句整理变量名表keep<变量名表>;(指定要保留在数据集变量)drop<变量名表>;(指定要从数据集中删除变量)结合if语句进行条件赋值if<条件表示式>then<表示式>;[else<表示式>];9/12/202632医用SAS统计分析专家讲座第32页例datakeep;inputx1x2x3@@;x4=log10(x1);keepx1x2x4;renamex4=lgx1;Cards;203432245093344356425688;procprint;run;

注:keep语句等价于dropx3;OBSX1X2LGX1120341.30103224501.38021334431.53148442561.623259/12/202633医用SAS统计分析专家讲座第33页datadrop;setchild;ifid<200thengroup=1;elsegroup=2;dropx3x4x5x6;renameid=x0;procprint;run;

注:drop语句等价于keepidx1x2group;OBSX0X1X2GROUP11m32122m35133m3314254m17625255f3026256f3327521f1782例9/12/202634医用SAS统计分析专家讲座第34页SAS数据集整理---统计操作数据子集化

统计输出语句格式:if<表示式>;"将符合表示式统计输出到新建数据集。”语句格式:if<表示式>thenoutput<数据集名1>;elseoutput<数据集名2>;Output使用:普通SAS在data步语句全部执行完后才将数据送入新数据集。但碰到output语句时,会马上将当前数据送入新数据集;此时,假如output语句后还有其它data步语句,则不再被执行。

9/12/202635医用SAS统计分析专家讲座第35页

例1dataa;inputx@@;cards;23568910;datab;seta;ifx>3;/*只将x>3变量值由数据集a赋值给数据集b*/procprint;run;统计删除if<表示式>thendelete;"将符合表示式变量从数据集中删除。”OBSX152638495109/12/202636医用SAS统计分析专家讲座第36页datab1;setchild;ifx1=‘m’;procprint;Run;OBSIDX1X2X3X4X5X611m3295.514.053.549.6422m3592.013.052.041.6133m3389.012.553.535.814254m176168.053.582.0100.14datab1b2;setchild;ifx1=‘m’thenoutputb1;elseoutputb2;run;例29/12/202637医用SAS统计分析专家讲座第37页例3dataa;inputidx1x2x3;cards;1012121552301524114350421602527035480273;datac1;seta;ifx1=1thendelete;procprint;run;结果:OBSIDX1X2X31101212301523504214602525703546802739/12/202638医用SAS统计分析专家讲座第38页例4datac2;seta;ifx1=0thenoutput;ifx3>=2thenx3=2;(执行了output语句,此语句不再执行。)procprint;run;

结果:OBSIDX1X2X31101212301523504214602525703546802739/12/202639医用SAS统计分析专家讲座第39页例5datac3;seta;ifx3>=2thenx3=2;ifx1=0thenoutput;procprint;run;结果:OBSIDX1X2X31101212301523504214602525703526802729/12/202640医用SAS统计分析专家讲座第40页SAS数据集整理---统计操作数据排序

对数据集数据进行排序。

语句格式:procsort[选择项];by[descending]变量名;sort过程按by变量名值进行排序。[选择项]:1.假如对非当前数据集排序,须用data指出要排序数据集名。如:procsortdata=L.px1;2.排序后产生一新数据集,数据集名可用"out="指出,如:procsortout=L.px2;如缺省,则原数据集将被输出数据集替换。[descending]选择为降序,不选择为升序。如:bydescendingx1;

9/12/202641医用SAS统计分析专家讲座第41页例1.

LibnameL’d:\sas\sas1’;dataL.class1;inputname$kc1kc2kc3kc4;sum=(kc1+kc2+kc3+kc4);cards;zhao83766888qian76778069sun75827878li80788581;procprint;procsort;bydescendingsum;procprint;Procsortout=L.class2;bysum;procprint;run;9/12/202642医用SAS统计分析专家讲座第42页OBSNAMEKC1KC2KC3KC4SUM1zhao837668883152qian767780693023sun758278783134li80788581324OBSNAMEKC1KC2KC3KC4SUM1li807885813242zhao837668883153sun758278783134qian767780693029/12/202643医用SAS统计分析专家讲座第43页OBSNAMEKC1KC2KC3KC4SUM1qian767780693022zhao837668883153sun758478783154li807885813249/12/202644医用SAS统计分析专家讲座第44页数据集纵向合并

将两个或多个数据集变量值纵向合

并。

语句格式:set<数据集A><数据集B>…;

比如:有两个数据集A和B,将二者纵向合并成新数据集AB程序以下:dataAB;setAb;run;SAS数据集整理---统计操作9/12/202645医用SAS统计分析专家讲座第45页

若A.B两数据集变量完全相同,则新数据集AB变量与两个数据集变量一致;若A.B量数据集变量不完全一致,则新数据集AB除含有两个数据集共同变量外,还包含各自变量,对于原数据集中没有变量,其值为缺失值。比如,数据集A.B变量值分别以下:

数据集A中数据NOAGESEXHEIGHT0116m1780216m1700317m1750418m169数据集B中数据NOAGESEXHEIGHTWEIGHT16f1605517f1656017f159509/12/202646医用SAS统计分析专家讲座第46页新数据集AB数据OBSNOAGESEXHEIGHTWEIGHT10116M178.20216M170.30317M175.40418M175.51116F1605561217F1656071317F159509/12/202647医用SAS统计分析专家讲座第47页数据集横向合并将两个或多个数据集变量值横向合并。

语句格式merge<数据集1><数据集2>;[by识别字段;]使用by识别字段时,要先按识别字段排序。9/12/202648医用SAS统计分析专家讲座第48页例dataa;inputidx1x2;cards;11112221224414255152;datab;inputidx3;cards;113333443dataab;mergeab;byid;procprint;run;OBSIDX1X2X311111213222122.33..3344414243555152.9/12/202649医用SAS统计分析专家讲座第49页例dataa;inputidx1x2;cards;111122212244142441142255152;

datab;inputidx3;cards;1133334435535533;

datac;mergeab;byid;procprint;run;OBSIDX1X2X311111213222122.33..33444142435441142243655152537551525339/12/202650医用SAS统计分析专家讲座第50页在PROC过程几个惯用语句WHERE语句PROC过程步中定义表示式,在分析之前用该表示式选择符合条件变量值作为分析对象。语句格式where<表示式>;例dataa;inputidx1x2;cards;1111222122341424454455152;procprint;wherex1>20;run;OBSIDX1X22221223341424445445551529/12/202651医用SAS统计分析专家讲座第51页

SUM语句

语句格式SUM变量表对SUM语句中数值变量求合并打印输出。例dataabc;inputabc@@;cards;2122265741236716231923;procprint;sumabc;run;OBSABC121222625743123647162351923======6450629/12/202652医用SAS统计分析专家讲座第52页

标题title语句

在PROC过程步中指定打印到输出文件上标题内容。

语句格式

title[n]‘标题内容’n为标题行,n范围从1到10,缺省值为1。标题内容是要打印标题字符串,字符不超出132个。

一旦为一行要求了一个标题,则在后继输出中都使用该标题,直至取消该标题或为该行定义其它标题为止。若要取消现存标题,使用下面语句:titlen;如title;title2;等。例9/12/202653医用SAS统计分析专家讲座第53页dataa;inputx@@;cards;456789345;datab;inputx@@;cards;4534563344543236;dataab;setab;procmeansdata=a;title'samplea';procmeansdata=b;title'sampleb';procmeansdata=ab;title'sampleab';procprintdata=a;title;run;9/1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论