




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 SAS语言入门语言入门第1节 SAS语言的程序结构与编写第2节 SAS的程序运行结果与解释第3节 SAS系统数据集的建立第4节 SAS系统对数据的管理第5节 SAS 结构化语句第6节 常用的SAS运算符和SAS函数第第1节节 SAS程序结构与编写程序结构与编写一个简单的一个简单的SASSAS程序程序【例2-1】 某学校测得12名女生体重X1(kg)和胸围X2(cm)资料表2-1,试计算体重与胸围的均数和标准差。表2-1 12名女生体重和胸围测量结果DATA EX2_1;INPUT X1 X2;CARDS;35 60 40 74 40 6442 71 37 72 45 6843 7
2、8 37 68 44 7042 65 41 73 39 75;PROC MEANS;RUN; 数据步过程步SASSAS程序包括了程序包括了: :l 数据步:数据准备部分,数据步:数据准备部分,l 过程步:数据分析部分,过程步:数据分析部分,数据步和过程步均由一个语句或几个数据步和过程步均由一个语句或几个语句组成,每个语句都以一个关键词语句组成,每个语句都以一个关键词开始,以分号结束。开始,以分号结束。程序程序2-12-1学生学生123456789101112体重354040423745433744424139胸围607464717268786670657375【例2-2】某医院分别调查了11例
3、克山病患者和健康人的血磷值(mmol/L),如表2-2所示,试求两组的平均血磷值和标准差。第第1 1节节 SASSAS程序结构与编写程序结构与编写患者组0.841.051.201.201.391.531.671.801.872.072.11正常组0.540.640.640.750.760.811.161.201.341.351.48表2-2 11名克山病与健康人的血磷值程序程序2_2DATA EX2_2;INPUT GRP X ;CARDS;1 0.84 1 1.05 1 1.20 1 1.20 1 1.39 1 1.511 1.67 1 1.80 1 1.87 1 2.07 1 2.112
4、0.54 2 0.64 2 0.75 2 0.76 2 0.81 2 1.162 1.20 2 1.34 2 1.35 2 1.48;PROC MEANS DATA = EX2_2;CLASS GRP;VAR X;RUN;数据步数据步过程步过程步一、一、 SAS程序的结构程序的结构1 1、数据步、数据步作用:输入数据并建立SAS数据集。 DATA语句语句表示数据步开始并指明要建立的SAS数据集的文件名。文件名由1-32个英文字母、下划线和数字组成,并要求以英文字母或下划线开始。INPUT语句语句规定变量名、变量类型及顺序(变量名组成要求同文件名)。两个变量间用空格分隔。第第1节节 SAS程序结
5、构与编写程序结构与编写CARDS语句语句表示数据行的开始,之后逐行输入数据,直到“;”结束数据步。“;”必须另起一行单独写,不能写在最后一行数据的后面。第第1节节 SAS程序结构与编写程序结构与编写值得注意的是:值得注意的是:1.INPUT语句中列出变量的顺序与数据块中输入数据的顺序必须一致;2.数据块中的每一数据行上数据与数据间至少用一个空格隔开;3.每个观测占一行,如为了输入方便,需要在一个数据行中输入多个观测,可在INPUT语句结尾加上续航符2 2、过程步、过程步 作用:对已建立的SAS数据集通过调用SAS系统中的各种现成的过程进行统计分析、打印等处理(一个过程代表一种、一类统计方法、一
6、类操作或处理)。 格式: PROC 过程名过程名 DATA=数据集名数据集名 选项选项;SAS过程步总是以一个PROC语句开始,后面紧跟着程序步名,用以区分不同的程序步。 该过程的专用语句描述; DATA=数据集名数据集名 VAR变量序列;变量序列; WHERE条件表达式条件表达式; BY变量序列;变量序列; RUN;第第1 1节节 SASSAS程序结构与编写程序结构与编写方括号内的语句为可选语句,可根据需要进行选用,如果缺省,则SAS系统将按最通常的情况来处理,即:处理最新建立的SAS数据集;处理所有变量;一次处理整个数据集而非某个子集。 当我们的要求与系统默认的范围不同时,就需对选项进行设
7、定。l DATA=数据集名该选项用于指明所需处理的数据集名。例如用于分析的数据集名为TEMP,则应写为DATA=TEMP。l VAR语句 按用户需要指定要分析的变量。PROC PRINT;语句输出的是系统默认的变量,即输出全部变量。若只想显示其中的X变量的列表,则PRINT过程应为: PROC PRINT; VAR X;l WHERE语句用于给定处理的条件。比如我们只想显示小于15的X变量的值,则应在PRINT过程中加入WHERE语句以对条件进行限制,即: PROC PRINT;VAR X;WHERE X15;第第1 1节节 SASSAS程序结构与编写程序结构与编写程序程序2-2(克山病调查案
8、例)(克山病调查案例)PROC MEANS DATA=EX2_2;CLASS GRP;VAR X;RUN;l BY语句语句若要对数据进行分组处理,比如当我们要按性别或品种等分组输出统计结果时,可采用BY语句来实现。如果我们想按不同的X值输出其他变量的值,则加入的BY语句如下: BY X;注意:注意:使用BY语句要求数据集事先已经按BY语句中指定的变量进行了排序,否则程序将无法正确运行。在应用时,可以先用SORT过程来进行排序,格式如下: PROC SORT DATA = 数据集名数据集名; BY 变量名列;变量名列;例如我们想对数据集按X变量进行排序,则可加入语句: PROC SORT; BY
9、 X;第第1 1节节 SASSAS程序结构与编写程序结构与编写二、二、 SAS程序的书写程序的书写SAS功能的实现是通过由SAS语句组成的程序来完成的,每一条语句指定SAS完成特定的操作。1. 语句的第一个词一般为SAS关键字,指定系统执行某一操作。语句的其他部分说明如何执行这一操作,描述操作所需的信息。2. 语句从上一个语句结束处开始,每个语句必须以一个分号结束。程序的末尾用RUN;语句结束。 3. 语句的输入格式相当自由。 一个SAS语句可以从一行的任一列开始输入。 一行中可以输入任意多条语句,一条语句也可以占用多行。 语句中间还可以空行。 语句对字母的大小写不加区分,输入语句时可以用大写
10、字母,也可以用小写字母,或大小写混合使用,但要求语句中的各项之间至少但要求语句中的各项之间至少有一个空格分隔。有一个空格分隔。为了便于阅读和检查,建议开始学习时每行只写一个语句。为了便于阅读和检查,建议开始学习时每行只写一个语句。第第1 1节节 SASSAS程序结构与编写程序结构与编写第第2 2节节 程序运行与结果解释程序运行与结果解释程序2-1运行结果如下:在程序编辑窗口逐行编写完程序2_1后,在窗口命令框中键入“submit”或点击快捷工具栏中的“小人图标”按钮 ,程序即被提交给SAS系统运行,在标题栏中会看到相应的系统信息不断刷新,如程序无误且有运算结果,则最后OUTPUT窗口弹出成为当
11、前窗口,显示程序运行结果。如程序有误,则窗口不做改变,按LOG窗口中的相应提示,查看错误所在,再在编辑窗口中把出错部分改正,再运行程序。DATA EX2_1;INPUT X1 X2;CARDS;35 60 40 74 40 64 42 71 37 72 45 68 43 78 37 68 44 70 42 65 41 73 39 75;PROC MEANS;RUN; 第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立一、一、SASSAS数据数据集与数据库集与数据库 任何统计分析都需要对数据进行操作,在SAS系统中,只能对SAS数据集进行处理和分析。SAS数据集存储在SAS数据库的文
12、件集中,SAS数据库与某一个文件夹相对应,因此,要为每一个数据库指定一个库标记(即库名)来识别该库,SAS中指定库标记用LIBNAME命令实现,其一般格式为:LIBNAME LIBNAME 库标记库标记 文件夹位置文件夹位置例如要指定目录c:course为库标记SP, 建立永久数据库,则可用如下语句来实现:LIBNAME SPc:course DATA SP.EX2_1;INPUT X Y ;CARDS;1 3 5 7 9 21 54 76;RUN;第第3 3节节 SASSAS系统数据集的建立系统数据集的建立二、数据库的种类二、数据库的种类1、永久性数据库(SASUSER)2、临时性数据库(W
13、ORK)临时性数据库只有一个,它在每次启动SAS系统后自动生成,关闭SAS时库中的数据集被自动删除。永久库可以有多个,用户可以用LIBNAME语句指定永久的库标记,永久库中的文件将被保留。但库标记仍然是临时的,每次启动SAS系统后都要重新指定。为了方便用户,SAS在每次启动时都会自动指定两个库标记。第第3 3节节 SASSAS系统对数据集的建立系统对数据集的建立需要注意的是需要注意的是:1、SAS数据库对应的是文件夹 SASUSER对应 D:SASSASUSER WORK对应 D:SASSASWORK;2、SAS数据集对应文件,每个数据集实际上是在相应的文件夹内产生一个文件名为数据集名,扩展名
14、为.SD2的文件。每一个数据集都有一个两级名,第一级是库标记,第二级是数据集名,中间用“.”号隔开,在程序中通过指定两级名来识别文件。文件两级名的一般形式如下: 库标记数据集名例如,在引用A库中的数据集DATA01时,应写为:A.DATA01。SAS的数据值被安排在一个矩阵式的表状结构中,见下图所示。表的列称之为变量(Variable),变量类似于其它文件类型的域或字段(Field);表的行称之为观察(Observation),观察相当于记录(Record)。一个SAS数据文件 第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立第第3 3节节 SAS SAS系统数据集的建立系统数据
15、集的建立三、数据的两种输入方式三、数据的两种输入方式SAS程序中,数据的输入方式主要有直接输入和从外部文件读人两种方式。1、 通过通过INPUT和和CARDS语句建立数据集(直接输入方式)语句建立数据集(直接输入方式) Data temp; *建立临时数据集WORK.TEMP*/ Input x y; *输入的变量为X、Y,且是连续输入*/ Cards; *直接输入数据,数据块开始*/ 12 14 20 21 14 16 13 15 *数据块*/ ; *数据块结束*/ Proc print; *显示数据集内容*/ Run; *程序结束,且运行*/OBS X Y 1 12 14 2 20 91
16、3 14 16 4 13 15程序运行在结果 SAS数据集可以是永久的数据集可以是永久的也可是临时的。当原始数也可是临时的。当原始数据不多,可通过据不多,可通过DATA步中步中INPUT和和CARDS语句创建语句创建零时数据集。零时数据集。第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立上述程序INPUT语句中,变量Y后面的表示数据可以在一行里连续读入,即在一行内连续读入x和y,直到本行结束后,再转到下一行继续读入,直至分号(数据块结束)。如果去掉,则每行只能读入两个数据,即一个x和一个y,然后再转入下一行继续读;如果读入的数据为字符型变量,则在INPUT语句中应在相应的变量名后
17、加上“$”符号。如上例中如果x为字符型变量,y为数值型变量,则INPUT语句应为: INPUT x$ y;2 2、通过几种常用数据文件建立、通过几种常用数据文件建立SASSAS数据集(外部文件读入方式)数据集(外部文件读入方式) 在在DATA步中采用步中采用INFILE和和INPUT语句建立语句建立SAS数据集数据集当原始数据为文本文件时,可通过从外部文件读入数据的方法来建立SAS数据集,其一般形式为:DATA 数据集名数据集名;INFILE “外部文件所在位置及名称外部文件所在位置及名称” 选项选项;INPUT 变量名变量名 输入格式输入格式;RUN; 利用菜单方式建立数据集利用菜单方式建立
18、数据集当数据量很大时,用户可以把数据用数据管理软件如FOXPRO或DBASE等来创建数据库文件以及EXCEL工作表,导入SAS系统中,从而创建SAS数据集。该操作是对话式的,界面友好,简单实用。第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立【例2-3】调查10名糖尿病人的血糖(Y,mmol/L)、胰岛素(X1,mU/L)及生长素(X2,ug/L)的测定值列于下表,将该表数据建立成SAS数据集。 患者编号(ID) 血糖(Y) 胰岛素(X1) 生长素(X2) 1 10.43 13.2 9.63 2 13.41 15.6 11.42 3 11.07 10.9 6.98 4 12.52
19、 14.1 10.69 5 8.96 16.5 5.63 6 15.21 11.0 12.51 7 9.64 15.2 7.35 8 12.16 18.4 6.43 9 10.61 17.4 9.86 10 8.49 20.6 5.73 DATA EX2_3;INPUT ID Y X1 X2;CARDS; 1 10.43 13.2 9.63 2 13.41 15.6 11.42 3 11.07 10.9 6.98 4 12.52 14.1 10.69 5 8.96 16.5 5.63 6 15.21 11.0 12.517 9.64 15.2 7.35 8 12.16 18.4 6.43 9
20、10.61 17.4 9.86 10 8.49 20.6 5.73 ;PROC PRINT DATA=EX2_3 ;RUN;第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立DATA EX2_3;INFILE C:USERSEX2_3.TXT ;INPUT ID Y X1 X2;RUN;外部文件输入方式建立数外部文件输入方式建立数据集程序据集程序2_3-采用采用INFILE和和INPUT语句语句直接输入方式建立直接输入方式建立数据集程序数据集程序2_2第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立外部文件输入方式建立数据集外部文件输入方式建立数据集-利用菜单方式利用
21、菜单方式第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立第第3 3节节 SAS SAS系统数据集的建立系统数据集的建立一、利用已建立的数据集产生新的数据集一、利用已建立的数据集产生新的数据集第第4 4节节SASSAS系统对数据的管理系统对数据的管理对于已建立好的数据集对于已建立好的数据集要完全复制或从中读取要完全复制或从中读取部分变量来建立新的部分变量来建立新的SAS数据集,通过数据集,通过DATA步中的步中的SET语句创建语句创建程序程序2_4DATA EX2_4;SET EX2_3 (DROP=ID RENAME=
22、Y=BS IN=M1 FIRSTOBS=2 OBS=5) NOBS=NUMBER;PROC PRINT DATA=EX2_4;RUN;程序2_3程序2_4二、数据集的排序二、数据集的排序利用SORT过程完成对数据集中数据按某个变量或多个变量值的大小进行排序。其一般形式为:PROC SORT 选项选项;BY DESCENDING 变量名变量名;PROC SORT语句 调用SORT过程对数据集排序,其选项有:DATA =数据集名OUT =数据集名第第4 4节节SASSAS系统对数据的管理系统对数据的管理DATA =数据集名数据集名 用来指定要排序的数据集,如缺省,则对最近使用的 SAS数据集排序。
23、OUT=数据集名数据集名 用来指定存放排序后的输出数据集,缺省则用原始数据集名代替。PROC SORT 选项选项BY语句 用于指定按所列出的变量对观测值排序,DESCENDING表示其后变量值按降序排列,如缺省则按升序排列(程序2-5)。DATA EX2_5;INPUT ID Y X1 X2;CARDS; 1 10.43 13.2 9.63 2 13.41 15.6 11.42 3 11.07 10.9 6.98 4 12.52 14.1 10.69 5 8.96 16.5 5.63 6 15.21 11.0 12.517 9.64 15.2 7.35 8 12.16 18.4 6.43 9
24、10.61 17.4 9.86 10 8.49 20.6 5.73 ;PROC SORT DATA=EX2_5 OUT=EX2_6;BY Y;PROC PRINT DATA = EX2_6;RUN;第第4节节SAS系统对数据的管理系统对数据的管理 - 数据集排序对例2_3 10名 糖尿病人血糖,胰岛素和生长素调查数据按血糖含量进行排序。程序程序2_5三、三、SAS数据集的连接数据集的连接常用DATA步中的SET语句实现多个数据集纵向(即前后)合并,产生一个新的数据集。其一般形式为:DATA 数据集名数据集名;SET 数据集名数据集名;RUN;lDATA 语句后的数据集用来存储链接后的新数据。l
25、SET语句用来指定其后的数据集纵向连接纵向连接。1. 当连接的数据集变量一致时,连接后的新数据集变量将和原数据集变量相同;2. 当连接的数据集变量不完全相同时,连接后的新数据集将包含原数据集相同变量,也包含各自不同的变量,对于不包含原始数据集的变量将赋予缺失值。第第4 4节节SASSAS系统对数据的管理系统对数据的管理 -数据集连接程序程序2_6DATA EX2_61;INPUT NAME $ HEIGHT WEIGHT;CARDS;LIMIN 169 58.7WANGJUAN 173 64.2;DATA EX2_62;INPUT NAME $ HEIGHT WEIGHT AGE;CARDS;
26、ZHAOLIANG 176 61.5 21LIUGANG 182 74.2 22;DATA EX2_6;SET EX2_61 EX2_62;PROC PRINT;RUN;第第4 4节节SASSAS系统对数据的管理系统对数据的管理 -数据集连接合并两数据集相同变量,对不包含原始数据集的变量赋予缺失值。缺失数据的处理缺失数据的处理在SAS系统中,一般用符号“.”来表示缺失数据。这里需要注意的是,缺失数据“.”与观测值为0的意义是完全不同的。四、数据集的合并四、数据集的合并数据集的合并是指利用DATA步中的MERGE语句,将两个或两个以上数据集中的观测横向合并横向合并生成一个新观测的数据集。其一般形
27、式为:DATA 数据集名;数据集名;MERGE 数据集名;数据集名; 数据集选项数据集选项;RUN;MERGE语句表示将其后每个数据集的第一个观测合并成新数据集中的第一个观测,依此类推。新生成的数据集中观测数等于每个数据集的观测数,变量数是每个合并数据集的变量数之和,如合并的每个数据集中具有相同变量名但是取值不同时,则新数据集该变量的取值为MERGE语句最后一个含有该变量的数据集的值。第第4 4节节SASSAS系统对数据的管理系统对数据的管理 -数据集合并程序程序2_7DATA EX2_71;INUT X1 X2;CARDS;21 19 31 32 29 26;DATA EX2_72;INPU
28、T ID$ Y Z ;CARDS;ONE 39.1 . TWO 19.5 8 THREE 21.7 16;DATA EX2_7;MERGE EX2_71 EX2_72;PROC PRINT;RUN;第第4 4节节SASSAS系统对数据的管理系统对数据的管理 -数据集合并新生成的数据集中:新生成的数据集中:观测数等于每个数据集的观测数,观测数等于每个数据集的观测数,变量数是每个合并数据集的变量变量数是每个合并数据集的变量数之和。数之和。程序程序2_8DATA EX2_81;INUT X1 X2;CARDS;21 38 31 22 29 45;DATA EX2_82;INPUT ID$ Y Z X
29、2 ;CARDS;ONE 39.1 . 33 TWO 19.5 8 27 THREE 21.7 16 31;DATA EX2_8;MERGE EX2_81 EX2_82;PROC PRINT;RUN;第第4 4节节SASSAS系统对数据的管理系统对数据的管理 -数据集合并如合并的每个数据集中具有相同变相同变量名量名但是取值不同时,则新数据集中该变量的取值为MERGE语句最后最后一个含有该变量的数据集的值。第第4 4节节SASSAS系统对数据的管理系统对数据的管理 - -数据的预处理五、数据的预处理五、数据的预处理由试验或调查所获得的原始数据通常包括若干变量和观察值,在进行统计分析前,经常会需要
30、先对数据进行处理,如产生一些新变量、删除或修改某些变量等。1 1、产生新变量、产生新变量 新变量可以通过赋值语句来产生。其格式为: 变量=表达式;其作用是将表达式的计算结果赋给变量。表达式中可以包括常量、已有的变量和函数等。【例如】X=108,Y=1000。如要产生一个新变量Z,Z=X2-Y,相应SAS程序语句为: INPUT X Y; Z=X*X-Y2 2、修改变量、修改变量 对已有的变量进行修改同样可以采用赋值语句来完成。例如,要将变量y的值进行对数转换,则可写为:y=log(y);3 3、删除变量、删除变量 SAS系统中,删除变量可用DROP语句来完成,其格式为:DROP 变量表;例如,
31、在一个包含x1、x2、x3、x4 四个变量的数据集中,要删除x1和x3,则可用下面的程序来实现: 程序程序2 -9 Data temp; Input x1 x2 x3 x4 ; Drop xl x3; Cards; 15 20 32 45 12 35 26 36 4l 54 48 32 ; Proc print; Run;第第4 4节节SASSAS系统对数据的管理系统对数据的管理 - -数据的预处理4、保留变量、保留变量 保留变量的作用是在一个已经建立的数据集基础上,保留其中的某些变量,生成一个新的数据集,从而达到保留部分变量的目的。相应的语句格式为: KEEP 变量表;变量表;【 例如】在上
32、面这个例子中,如果只想保留变量x2和x4,则相应的程序为:第第4节节 SAS系统对数据的管理系统对数据的管理 -数据的预处理Data temp;Input xl x2 x3 x4;Cards;15 20 32 45 12 35 26 36 41 54 48 32;Data new;Set temp;Keep x2 x4;Proc print;Run;新生成的数据集中就新生成的数据集中就只有只有x2和和x4两个变量两个变量程序程序2-10第5节 SAS结构化语句与其他结构化语言编写的程序一样,SAS程序也由顺序、分支和循环三种结构构成。顺序结构很容易理解,此处简单介绍一下分支和循环语句,这些语句可直接在数据步和程序步中使用,适当地应用分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理带教组长工作职责与能力要求
- 年度业务成果鉴定证明书(5篇)
- 从古诗看诗人的心境读后感(15篇)
- 护理管理学习汇报
- 产科患者护理规范与实施要点
- 除夕趣闻作文600字(10篇)
- 生物化学分子机制知识考点梳理
- 难忘的第一次作文800字11篇
- 环境化学污染控制要点解析
- 企业生产流程优化与智能制造策略规划
- 2025年九省联考新高考 英语试卷(含答案解析)
- 盐碱地质量等级评价技术规程
- 农民合作社资产负债表、盈余及盈余分配表、成员权益表
- 2024-2025学年福建省莆田市初三下学期二测模拟一语文试题含解析
- 2022国家电网企业文化、电力与能源战略题库(答案)
- 完整的策划书模板
- 土木工程材料期末考试试题库
- 模拟电子技术基础智慧树知到期末考试答案章节答案2024年北京航空航天大学
- 旅游定制师培训课件
- 中国青光眼指南
- 智慧矿山行业洞察研究报告 2023
评论
0/150
提交评论