医用SAS统计分析(一).ppt

上传人:牧羊曲112 文档编号:5246516 上传时间:2023-06-18 格式:PPT 页数:57 大小:618.50KB
返回 下载 相关 举报
医用SAS统计分析(一).ppt_第1页
第1页 / 共57页
医用SAS统计分析(一).ppt_第2页
第2页 / 共57页
医用SAS统计分析(一).ppt_第3页
第3页 / 共57页
医用SAS统计分析(一).ppt_第4页
第4页 / 共57页
医用SAS统计分析(一).ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《医用SAS统计分析(一).ppt》由会员分享,可在线阅读,更多相关《医用SAS统计分析(一).ppt(57页珍藏版)》请在三一办公上搜索。

1、医用SAS统计分析,主讲人 景学安,医用SAS统计分析,第一讲,主讲人 景学安,2023/6/18,2,SAS软件简介SAS发展概述 SAS(Statistical Analysis System)是一个管理数据、分析数据和编写打印各种形式报告的组合软件系统,是国际上非常流行的统计分析软件之一。1985年,美国SAS研究所推出了可以在微机上运行的SAS/PC版本,此后,又不断出新的版本,功能不断增强,越来越多的人在用它进行统计分析的同时,也把它用作数据管理软件。在英美等国,能熟练使用SAS进行统计分析是许多公司和科研机构选材的条件之一。美国FDA新药审批程序中,新药试验结果的统计分析规定只能用

2、SAS进行,目前已到SAS9.0版本。,2023/6/18,3,视窗管理系统,数据步语句,基本过程,统计过程,绘图过程,全屏幕数据处理,矩阵计算过程,时间序列分析,运筹学分析,质量控制,DMS,DATA,BASE,STAT,GRAPH,FSP,IML,ETS,OR,QC,图1 SAS基本组成,SAS的基本组成,2023/6/18,4,SAS的特点 1.语言编程能力强。SAS语言具有一般高级语言的一切功能,有100多个函数,有完成各种操作的算符,能读各种类型的数据,可以使用赋值语句、条件语句、数组和循环语句等对变量进行操作。SAS程序书写自由简洁。2.分析方法丰富。由SAS基本组成可见,SAS汇

3、集了大量的统计方法,从简单描述统计量的计算到多因素分析,从时间序列分析到质量控制等。仅SAS/STAT就包括了8类方法28个分析过程。,2023/6/18,5,3.对数据的连续处理。SAS能同时处理多个输入文件,能从几个数据集中组合变量值、观测值,建立子集,连接、合并和修改数据。SAS可存储一个合法的结果或中间结果,以便以后使用。4.可组合性。由于SAS是模块式结构,用户可按自己的要求,在SAS/BASE的基础上选择合适的模块,以组成自己需要的系统。,2023/6/18,6,SAS程序和SAS数据集安装 直接启动SAS安装界面启动 由程序栏启动。,由run命令启动,由文件名直接启动,建立桌面快

4、捷方式直接启动,2023/6/18,7,界面(显示管理系统):三个基本窗口PROGRAM EDITOR 编辑窗:编辑SAS程序LOG 记录窗:程序运行过程、时间、错误信息(红色显示)OUTPUT结果输出窗:当程序运行无误,且有结果输出时显示其他:var窗(显示指定数据集有关SAS变量信息)、keys窗(功能键窗)、libname窗(显示当前SAS库的名字和路径)等。以上窗口在command命令行输入相应的命令激活,2023/6/18,8,“Command=”命令行 位于每个窗口的上方,在options下拉菜单中Preference对话框中激活Command line 即可出现。在箭头后输入有关

5、命令后并回车即可执行。如:keys:进入功能键窗口 clear:清除光标所在的窗口中显示的内容 bye:退出SAS系统,回到Windows系统 num:程序编辑窗口出现行号,再键入num行号消失,2023/6/18,9,SAS运行菜单“File”调用、储存、打印文件“Edit”用于编辑文件“Local”用于运行本机文件 其中:Submit是运行程序,Recall是调回前面用过的程序。“Globals”可供选择窗口“Options”选择SAS的功能“Help”可随时提供帮助咨询,2023/6/18,10,菜单下方的工具条 Submit(运行),New(新文件),Open(打开文件),Save(储

6、存文件),Print(打印),View(预览),Cut(裁剪),Copy(复制),Paste(粘贴),Undo(恢复),DOS Prompt(DOS方式),Browse(连接英特网),Libraries(库),SAS/Assist(应用SAS/ASSIST模块),Help(提供帮助),2023/6/18,11,SAS文件系统*.sd2 SAS数据集(6.12版),8.0以上版为*.sas7bdat*.sas EDITOR视窗输出SAS程序文件*.log LOG视窗输出文件*.lst OUTPUT视窗口输出文件,2023/6/18,12,SAS中的常用变量,数值型变量 变量名有18个字符组成,以

7、英文字母开头,其余可以是英文字母、数字或下划线,不能有空格。如AGE,X2,X1_1,等都是合法的,1X,XY-1,X 1,等都是不合法的。变量值过大或过小的数可用科学记数法,如:1.785E-19 即为1.78510-19。,字符型变量 字符型变量在变量名后加“$”号表示,如NAME$,SEX$等。一个字符变量是由1-200个字符组成的字符串,如:Zhang Hua,M等都是一个字符变量。,2023/6/18,13,SAS运算符与常用函数,算术运算符(乘方)(乘)/(除)+(加)(减)比较运算符=或 EQ(等于)=或 NE(不等于)或 GT(大于)=或 GE(大于等于)25&B30;A25|

8、B30;NOT(A3)常用函数 ABS(x)x的绝对值;SQRT(x)x的平方根;EXP(x)e(2.71828)的x次方;LOG(x)x的自然对数(以e为底);LOG2(x)x的以2为底的对数;LOG10(x)x的普通对数(以10为底),2023/6/18,14,SAS程序结构:由三部分组成;SAS语句以一个关键词开始,以分号(;)结束。数据步 以data语句开始,用于创建和处理数据集。Data语句的功能:(1)标志数据步的开始;(2)命名将要创建的SAS数据集。data语句格式:data 数据集名;Input语句的功能:(1)读入由语句指定的数据列;(2)为相应数据域定义变量名;(3)确定

9、变量的读入模式。Input语句格式:input 变量名 变量类型;Cards语句:标志数据块的开始。格式为:cards;,2023/6/18,15,data esr;/*建立临时数据集esr.sd2,自动放在saswork子目录下*/Input x;/*指明要输入的变量*/Cards;/*标志数据区开始*/3 9 8 6 5 5 7 3 10 8 10 4;,2023/6/18,16,过程步 以PROC语句开始,对数据进行分析和处理时,需要调用SAS过程,SAS过程是一系列应用程序。语句格式:PROC SAS过程名选项;常用的选项为:data=数据集名 如:proc print;/*调用现成的

10、SAS过程,进行统计分析*/提交程序步 Run;/*在程序最后,指示过程步或数据步结束,可以提交程序*/,2023/6/18,17,Log窗输出,2023/6/18,18,Output窗输出,2023/6/18,19,程序运行-在编辑窗输入程序后点击图标按功能键“F8”在命令行(窗)键入“submit”在local下拉菜单中选“submit”窗口内容保存-激活窗口后在命令行(窗)键入 file 路径文件名点击图标在file下拉菜单中选“save”或“save as”只有编辑窗口(edit 窗)才能打开文件,2023/6/18,20,常用的快捷键F1 Help命令,进入帮助视窗。F4 recal

11、l命令,用于edit窗,将前面提交的程序 调回,可多次使用。F5 切换到edit视窗。F6 切换到log视窗。F7 切换到output视窗。F8 submit命令。F9 Keys命令,进入功能键视窗。Ctrl-E 清除当前窗口的内容。edit窗被清除的内容不能用F4调回。,2023/6/18,21,SAS数据集建立-用input和cards语句直接输入 data child;/*建立临时数据集child.sd2,自动放在saswork子目录下*/input id x1$x2 x3 x4 x5 x6;/*指明要输入的变量,$为字符型变量*/cards;/*标志数据区开始,数据之间以一个或几个空格

12、分隔*/1 m 32 95.5 14.0 53.5 49.64 2 m 35 92.0 13.0 52.0 41.61 3 m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0 79.0 87.42;/*标志数据区结束,分号必须单独一行*/run;,2023/6/18,22,SAS数据集建立-数据读入,data a1;input id x1$x2 x3 x4;cards;

13、1 m 32 95.52 m 35 92.0 13.03 m 33 89.0 12.5;proc print;run;结果:OBS ID X1 X2 X3 X41 1 m 32 95.5 2.02 3 m 33 89.0 12.5,data a1;input id x1$x2 x3;cards;1 m 32 95.52 m 35 92.0 13.03 m 33 89.0 12.5;proc print;run;结果:OBS ID X1 X2 X3 1 1 m 32 95.5 2 2 m 35 92.0 3 3 m 33 89.0,2023/6/18,23,不分行符的使用 data esr;in

14、put x;/*每读入一条记录后,数据指针保持原位不换行,继续读下一条记录*/cards;3 9 8 6 5 5 7 3 10 8 10 4;proc means;run;结果:Analysis Variable:X N Mean Std Dev Minimum Maximum-12 6.5000000 2.5405797 3.0000000 10.0000000-,2023/6/18,24,SAS数据集建立缺失值的输入-以.表示,缺失值不进入分析 data child;input id x1$x2 x3 x4 x5 x6;cards;1 m 32 95.5 14.0 53.5 49.64 2

15、 m 35.13.0 52.0 41.61 3 m 33 89.0 12.5 53.5 35.81 254 m 176 168.0 53.5 82.0 100.14 255 f 30 91.0 11.0 48.0 35.39 256 f 33 91.0 11.5 47.0 44.98 521 f 178 163.0 51.0 79.0 87.42;proc means;run;,2023/6/18,25,SAS数据集建立,结果Variable N Mean Std Dev Minimum Maximum-ID 7 184.5714286 194.9639771 1.0000000 521.00

16、00000 X2 7 73.8571429 70.4779601 30.0000000 178.0000000 X3 6 116.2500000 38.2410120 89.0000000 168.0000000 X4 7 23.7857143 19.4825930 11.0000000 53.5000000 X5 7 59.2857143 14.7361719 47.0000000 82.0000000 X6 7 56.4271429 26.2540446 35.3900000 100.1400000-,2023/6/18,26,SAS数据集建立-永久数据集和临时数据集,SAS数据集名称的表

17、示方式:两级文件名定义库关联名:libname 命令 libname 库关联名 盘符:路径;如:libname dw c:teach;路径必须实际存在。库关联名.数据集名:如 dw.esr临时数据集:存放在sassaswork子目录中的数据集,一旦退出sas,会被自动删除。它的库关联名默认为work,均省略不写。前面所生成的数据集都是临时数据集,退出sas后都会被删除。永久数据集:通过两级文件名的形式,将生成的数据集存放到saswork以外的路径中(库关联名所指向的路径),即可以生成永久数据集。即使退出SAS也还存在,可供以后调用。例:libname dw c:teach;data dw.es

18、r;input x1 x2 x3;(略),2023/6/18,27,从已建立的SAS数据集中读入数据建立新的SAS数据集-set命令,libname L c:teach;data L.child;set chlid;proc print;run;data a;set L.child;proc print;run;,data b;set a;run;注:Proc 步的操作对象总是最新生成的SAS数据集。只有proc步时,也可通过在proc语句后加data=指定要分析的数据集。如:proc means data=L.chlid;run;,2023/6/18,28,SAS数据集建立-从其它数据集转入

19、,利用file下拉菜单中的import功能,直接将其他类型的数据文件,转为SAS数据集。可转入:文本型数据文件(*.txt)可用Notebook(记事本)输入数据,首行为变量名,制表键(Tab)分隔。dbase II 和 III数据库文件(*.dbf)excel数据库 SAS8.0以上可转入Excel 97及2000的数据库,用Excel输入数据,首行为变量名。,2023/6/18,29,有的数据可通过粘贴的方法贴到edit窗后,加入input和cards等语句,生成sas数据集。,用infile语句建立SAS数据集 语句格式 infile 盘符:文件夹文件名.txt(或dat);首先用任何文

20、字处理软件来建立一个数据文件,但一定用纯文本格式保存。该纯本数据文件是不包含变量名的,必须知道那一列数据是哪一个变量值,调用使用input x1 x2 指明。,2023/6/18,30,例 新建纯文本文件“xy”,路径为 e:sasxy.txt。数据为:56 34 57 35 58 36 59 37 60 38 61 39 62 40 63 41 64 43 61 28,data Li_1;infile e:sasxy.txt;input x y;proc print;run;,OBS X Y 1 56 34 2 57 35 3 58 36 4 59 37 5 60 38 6 61 39 7

21、62 40 8 63 41 9 64 43 10 61 28,2023/6/18,31,SAS数据集的整理-变量操作,变量重命名:rename 旧变量名=新变量名;如 rename id=x0;变量赋值或修改变量值:变量名=表达式;如 y=log10(x);累加语句 累加变量+表达式 累加语句能把语句中表达式的运算结果或变量值累加到累加变量上,并作为记录送到数据集中。累加变量必须是数值型,表达式是符合SAS语言规则的表达式。累加变量的初始值由系统自动设置为零。,2023/6/18,32,例data abc;input a b c;sum=a+b+c;sumz+sum;cards;21 22 2

22、6 5 7 4 12 3 67 16 23 19 2 3;proc print;run;,OBS A B C SUM SUMZ 1 21 22 26 69 69 2 5 7 4 16 85 3 12 3 6 21 106 4 7 16 23 46 152 5 19 2 3 24 176,2023/6/18,33,用keep或drop语句整理变量名表 keep;(指定要保留在数据集的变量)drop;(指定要从数据集中删除的变量)结合if语句进行条件赋值 if then;else;,2023/6/18,34,例 data keep;input x1 x2 x3;x4=log10(x1);keep

23、x1 x2 x4;rename x4=lgx1;Cards;20 34 32 24 50 93 34 43 56 42 56 88;proc print;run;注:keep语句等价于 drop x3;,OBS X1 X2 LGX1 1 20 34 1.30103 2 24 50 1.38021 3 34 43 1.53148 4 42 56 1.62325,2023/6/18,35,data drop;set child;if id200 then group=1;else group=2;drop x3 x4 x5 x6;rename id=x0;proc print;run;注:drop

24、语句等价于 keep id x1 x2 group;,OBS X0 X1 X2 GROUP 1 1 m 32 1 2 2 m 35 1 3 3 m 33 1 4 254 m 176 2 5 255 f 30 2 6 256 f 33 2 7 521 f 178 2,例,2023/6/18,36,SAS数据集的整理-记录操作,数据子集化 记录输出语句格式:if;“将符合表达式的记录输出到新建的数据集。”语句格式:if then output;else output;Output 的使用:一般SAS在data步语句全部执行完后才将数据送入新数据集。但遇到output语句时,会马上将当前的数据送入新

25、数据集;此时,如果output语句后还有其他data步语句,则不再被执行。,2023/6/18,37,例1 data a;input x;cards;2 3 5 6 8 9 10;data b;set a;if x3;/*只将x3的变量值由数据集a 赋值给数据集b*/proc print;run;,记录删除 if then delete;“将符合表达式的变量从数据集中删除。”,OBS X 1 5 2 6 3 8 4 9 5 10,2023/6/18,38,data b1;set child;if x1=m;proc print;Run;OBS ID X1 X2 X3 X4 X5 X6 1 1

26、m 32 95.5 14.0 53.5 49.64 2 2 m 35 92.0 13.0 52.0 41.61 3 3 m 33 89.0 12.5 53.5 35.81 4 254 m 176 168.0 53.5 82.0 100.14data b1 b2;set child;if x1=m then output b1;else output b2;run;,例2,2023/6/18,39,例3,data a;input id x1 x2 x3;cards;1 0 12 12 1 55 23 0 15 24 1 14 35 0 42 16 0 25 27 0 35 48 0 27 3;,

27、data c1;set a;if x1=1 then delete;proc print;run;结果:OBS ID X1 X2 X3 1 1 0 12 1 2 3 0 15 2 3 5 0 42 1 4 6 0 25 2 5 7 0 35 4 6 8 0 27 3,2023/6/18,40,例4,data c2;set a;if x1=0 then output;if x3=2 then x3=2;(执行了output语句,此语句不再执行。)proc print;run;,结果:OBS ID X1 X2 X3 1 1 0 12 1 2 3 0 15 2 3 5 0 42 1 4 6 0 25

28、 2 5 7 0 35 4 6 8 0 27 3,2023/6/18,41,例5,data c3;set a;if x3=2 then x3=2;if x1=0 then output;proc print;run;,结果:OBS ID X1 X2 X3 1 1 0 12 1 2 3 0 15 2 3 5 0 42 1 4 6 0 25 2 5 7 0 35 2 6 8 0 27 2,2023/6/18,42,SAS数据集的整理-记录操作,数据排序 对数据集数据进行排序。语句格式:proc sort 选择项;by descending 变量名;sort过程按by变量名的值进行排序。选择项:1.

29、如果对非当前数据集排序,须用data指出要排序的数据集名。如:proc sort data=L.px1;2.排序后产生一新数据集,数据集名可用“out=“指出,如:proc sort out=L.px2;如缺省,则原数据集将被输出的数据集替换。descending 选择为降序,不选择为升序。如:by descending x1;,2023/6/18,43,例1.Libname Ld:sassas1;data L.class1;input name$kc1 kc2 kc3 kc4;sum=(kc1+kc2+kc3+kc4);cards;zhao 83 76 68 88qian 76 77 80

30、69sun 75 82 78 78li 80 78 85 81;proc print;,proc sort;by descending sum;proc print;Proc sort out=L.class2;by sum;proc print;run;,2023/6/18,44,OBS NAME KC1 KC2 KC3 KC4 SUM 1 zhao 83 76 68 88 315 2 qian 76 77 80 69 302 3 sun 75 82 78 78 313 4 li 80 78 85 81 324,OBS NAME KC1 KC2 KC3 KC4 SUM 1 li 80 78

31、85 81 324 2 zhao 83 76 68 88 315 3 sun 75 82 78 78 313 4 qian 76 77 80 69 302,2023/6/18,45,OBS NAME KC1 KC2 KC3 KC4 SUM 1 qian 76 77 80 69 302 2 zhao 83 76 68 88 315 3 sun 75 84 78 78 315 4 li 80 78 85 81 324,2023/6/18,46,数据集的纵向合并 将两个或多个数据集的变量值纵向合 并。语句格式:set;例如:有两个数据集A和B,将两者纵向合并成新数据集AB的程序如下:data AB;

32、set A b;run;,SAS数据集的整理-记录操作,2023/6/18,47,若A、B两数据集的变量完全相同,则新数据集AB的变量与两个数据集变量一致;若A、B量数据集的变量不完全一致,则新数据集AB除含有两个数据集共同的变量外,还包括各自的变量,对于原数据集中没有的变量,其值为缺失值。例如,数据集A、B的变量值分别如下:,数据集 A中的数据 NO AGE SEX HEIGHT 01 16 m 178 02 16 m 170 03 17 m 175 04 18 m 169,数据集B中的数据NO AGE SEX HEIGHT WEIGHT 16 f 160 55 17 f 165 60 17

33、 f 159 50,2023/6/18,48,新数据集AB的数据OBS NO AGE SEX HEIGHT WEIGHT 1 01 16 M 178.2 02 16 M 170.3 03 17 M 175.4 04 18 M 175.5 11 16 F 160 55 6 12 17 F 165 60 7 13 17 F 159 50,2023/6/18,49,数据集的横向合并 将两个或多个数据集的变量值横向合 并。,语句格式 merge;by 识别字段;使用by 识别字段时,要先按识别字段排序。,2023/6/18,50,例data a;input id x1 x2;cards;1 11 12

34、2 21 224 41 425 51 52;data b;input id x3;cards;1 133 334 43,data ab;merge a b;by id;proc print;run;OBS ID X1 X2 X3 1 1 11 12 13 2 2 21 22.3 3.33 4 4 41 42 43 5 5 51 52.,2023/6/18,51,例data a;input id x1 x2;cards;1 11 122 21 224 41 424 411 4225 51 52;data b;input id x3;cards;1 133 334 435 535 533,;dat

35、a c;merge a b;by id;proc print;run;OBS ID X1 X2 X3 1 1 11 12 13 2 2 21 22.3 3.33 4 4 41 42 43 5 4 411 422 43 6 5 51 52 53 7 5 51 52 533,2023/6/18,52,在PROC过程的几个常用语句WHERE语句 PROC过程步中定义表达式,在分析之前用该表达式选择符合条件的变量值作为分析的对象。,语句格式 where;例 data a;input id x1 x2;cards;1 11 12 2 21 22 3 41 42 4 45 44 5 51 52;,proc

36、 print;where x120;run;,OBS ID X1 X2 2 2 21 22 3 3 41 42 4 4 45 44 5 5 51 52,2023/6/18,53,SUM语句 语句格式 SUM 变量表 对SUM语句中的数值变量求合并打印输出。例data abc;input a b c;cards;21 22 26 5 7 4 12 3 67 16 23 19 2 3;proc print;sum a b c;run;,OBS A B C 1 21 22 26 2 5 7 4 3 12 3 6 4 7 16 23 5 19 2 3=64 50 62,2023/6/18,54,标题t

37、itle语句 在PROC过程步中指定打印到输出文件上的标题内容。,语句格式 title n 标题内容,n为标题行,n的范围从1到10,缺省值为1。标题内容是要打印的标题字符串,字符不超过132个。一旦为一行规定了一个标题,则在后继的输出中都使用该标题,直至取消该标题或为该行定义其它的标题为止。若要取消现存的标题,使用下面语句:title n;如 title;title2;等。例,2023/6/18,55,data a;input x;cards;4 5 6 7 8 9 3 4 5;data b;input x;cards;45 34 56 33 44 54 32 36;data ab;set

38、a b;,proc means data=a;title sample a;proc means data=b;title sample b;proc means data=ab;title sample ab;proc print data=a;title;run;,2023/6/18,56,sample a Analysis Variable:X N Mean Std Dev Minimum Maximum-9 5.6666667 2.0000000 3.0000000 9.0000000-sample b Analysis Variable:X N Mean Std Dev Minimum Maximum-8 41.7500000 9.5131488 32.0000000 56.0000000-,2023/6/18,57,sample ab Analysis Variable:X N Mean Std Dev Minimum Maximum-17 22.6470588 19.6530569 3.0000000 56.0000000-OBS X 1 4 2 5 3 6 4 7 5 8 6 9 7 3 8 4 9 5,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号