第四章、第五章

上传人:彩*** 文档编号:286543244 上传时间:2022-05-01 格式:PPT 页数:38 大小:423KB
返回 下载 相关 举报
第四章、第五章_第1页
第1页 / 共38页
第四章、第五章_第2页
第2页 / 共38页
第四章、第五章_第3页
第3页 / 共38页
第四章、第五章_第4页
第4页 / 共38页
第四章、第五章_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第四章、第五章》由会员分享,可在线阅读,更多相关《第四章、第五章(38页珍藏版)》请在金锄头文库上搜索。

1、第四章、第五章第四章 数据步程序设计 数据步的程序代码一般都是顺序执行,数据步的程序代码一般都是顺序执行,然而,数据步中有一些控制语句,如分支、然而,数据步中有一些控制语句,如分支、循环语句,可控制程序的执行流程。循环语句,可控制程序的执行流程。IFIFDO ENDDO ENDGOTOGOTORETURNRETURN4.1 IF 语句 两种两种IF语句语句: 条条件件IF语语句句,带带有有一一个个THEN子子句句和和ELSE子子句句(可可选选)。只只对对满满足足IF语语句句中中所所指指定定条条件件的的观观测测值值才才执执行行SAS语语句句。如如果果THEN子子句句不不被被执执行行,那那么么可可

2、选选择择的的ELSE子句给出另一种替换作用。子句给出另一种替换作用。 子子集集IF语语句句,无无THEN子子句句。用用来来使使SAS系系统统继继续续处处理理那那些些满满足足IF 子子句句中中条条件件的的观观测值。测值。IF-THEN/ELSE语句语句 格式格式:IF expression THEN statement; 说明:说明:SAS系统首先对跟在系统首先对跟在IF后的表达式后的表达式(expression)求值,求值,如果结果为真如果结果为真(非零非零),则执行则执行THEN后的语句。后的语句。如果为假,如果为假,则去执行则去执行ELSE后面的语句,如果没有后面的语句,如果没有ELSE子

3、句,则执行下子句,则执行下一个语句。一个语句。注意注意: 在在THEN之后只允许使用一个语句,如果要执行几个之后只允许使用一个语句,如果要执行几个语句,则应用语句,则应用DO-END把要同时执行的几个语句用括起来。把要同时执行的几个语句用括起来。 IF-THEN/ELSE 语句可以嵌套语句可以嵌套 。4.2 GO TO (GOTO)语句 格式格式: GOTO label; 或或 GO TO label;说明:说明:GO TO (或者或者GOTO)语句告诉语句告诉SAS系统,立即系统,立即跳向在跳向在GOTO语句中指出的语句,语句中指出的语句, 并从那一点开始并从那一点开始接着执行。接着执行。G

4、O TO语句和跳向的目标都必须在一个语句和跳向的目标都必须在一个DATA步中,跳向的目标语句由步中,跳向的目标语句由GO TO语句和目标语句和目标语句中的标号来标明。语句中的标号来标明。 label: 标识标识GOTO目标的语句标号。目标的语句标号。 4.3 RETURN语句 格式:格式:RETURN; RETURN语语句句的的功功能能是是将将当当前前观观测测值值输输出出到到数数据据集集,然然后后立立即即将将程程序序流流程程返返回回DATA步的开始处,而不执行其后的语句。步的开始处,而不执行其后的语句。GO TO语句经常被语句经常被DO-END语句代替。语句代替。4.4 循环在在数数据据步步的

5、的一一次次执执行行中中反反复复地地执执行行某某一一部分语句,这种程序的反复执行称为循环。部分语句,这种程序的反复执行称为循环。 DATA _NULL_;I=1;K: PUT I;I=I+1;IF I=10 THEN GOTO K;RUN; DO I=1 TO 10;PUT I;END;4.4 循环循环语句的格式: DO 指针变量=初值 TO 终值 BY 增量; END ;说明: DO语句组第一次执行时,指针变量等于初值。当终值和增量都存在时,则每执行到 END语句时, 指针变量+增量作为新的指针变量,并与终值作比较,直到指针变量的值变化超过终值时才停止执行DO语句组。最后一次执行完后,指针变量

6、值超过终值。4.4 循环如如果果仅仅有有初初值值,则则直直到到一一个个语语句句指指示示跳跳出出循循环环体体才才停停止止循循环环。如如果果初初值值终终值值均均未未规规定定,语语句句组组执执行行一一次次。如如果果未未规规定定增增量量,增增量量的的缺缺省省值值为为1。初初值值和和终终值值是是在在第第一次执行循环以前计算的。一次执行循环以前计算的。4.4 循环PUT语句中变量名后面使用等号,是对输出值用变量名来标识。称为命名输出。如:PUT I=;DATA _NULL_;DO I=1 TO 10;PUT I=;END;RUN;4.4 循环双重循环(循环嵌套):DO;DO;END;END; 内循环外循环

7、4.4 循环双重循环(循环嵌套):DATA _NULL_;DO I=1 TO 9;DO J=1 TO I;X=I*J;PUT (J*5) X ;END;PUT;END;RUN; 4.4 循环 DATA _NULL_;DATA _NULL_; DO I=1 TO 9; DO I=1 TO 9; DO J=1 TO I; DO J=1 TO I; X =I*J; X =I*J; PUT J 1. * I 1. = X 2. +2 ; PUT J 1. * I 1. = X 2. +2 ; END; END; PUT; PUT; END; END;RUN;RUN;4.5 其它程序设计中常用语句4.5

8、.1 DELETE 语句语句 格式:格式:DELETE;DELETE语语句句告告诉诉SAS系系统统停停止止处处理理当当前前的的观观测测值值, 且且该该观观测测值值不不被被写写入入正正在在建建立立的的数数据据集集中中,SAS系系统统返返回回DATA步步的的开开始始处处进行下一次执行。进行下一次执行。4.5.2求子集的IF语句格式:IF expression;使用求子集IF语句,使SAS系统仅继续处理符合IF语句条件规定的观测值, 因而所得到的数据集是原数据集的子集。如如果果表表达达式式为为真真(非非零零且且不不缺缺项项),SAS系系统统继继续续为为正正在在建建立立的的观观测测值值执执行行DATA

9、 步步中中的的语语句句。如如果果表表达达式式的的值值是是假假(0或或缺缺项项),SAS系系统统马马上上返返回回到到DATA步步的的开开始始,去去进进行行另另一一次次执执行行而而不不输输出上一个观测值。出上一个观测值。如如: IF SEX=F;等同于(等同于(IF SEX=M THEN DELETE;在结果数据集中所包含的仅仅是在结果数据集中所包含的仅仅是SEX的值的值为为F的那些观测值。的那些观测值。 4.5.2求子集的IF语句4.5.2求子集的IF语句DATA A ;INPUT NAME$ SEX$ ; CARDS;ZHANG F LI M SUN F WANG F LIU M ZHAO M

10、 PROC PRINT; RUN;DATA B; SET A; IF SEX=F; PROC PRINT; RUN;第五章 SAS文件操作 v 建立永久数据集:将数据集存盘建立永久数据集:将数据集存盘v 数据排序:数据排序:SORT过程,将数据集中数据排序过程,将数据集中数据排序v 数据集连接:数据集连接:SET语句,多数据集纵向连接语句,多数据集纵向连接v 数据集合并:数据集合并:MERGE语句,多数据集横向合并语句,多数据集横向合并v 其他常用语句:其他常用语句:PUT、FILE、OUTPUTv SAS文件管理命令及过程文件管理命令及过程5.1 建立永久SAS数据集 数据库数据库:存储在一

11、个目录下的许多文件组成。存储在一个目录下的许多文件组成。库库标标记记(一一级级名名):是是SAS文文件件的的物物理理存存储储位位置置(目目录录)。在。在SAS系统中为一个统一的逻辑标记。系统中为一个统一的逻辑标记。临临时时库库:名名为为WORK,它它在在每每次次启启动动SAS后后自自动动生生成成,结束结束SAS后库中的数据自动删除。后库中的数据自动删除。永永久久库库:使使用用LIBNAME语语句句指指定定永永久久库库的的库库标标记记,永久库中的所有文件将被保留永久库中的所有文件将被保留 。 启动启动SAS时,时,SAS自动指定两个库标记:自动指定两个库标记: SASUSER:永久库,不必用永久

12、库,不必用LIBNAME指定。指定。 WORK:临时库,可省略库标记临时库,可省略库标记(缺省数据库缺省数据库)。建立永久数据集的关键语句建立永久数据集的关键语句 LIBNAME语句语句 DATA 语句语句建建立立永永久久数数据据集集与与建建立立临临时时数数据据集集所所用用的的语语句句基基本本相相同同,除除上上述述二二语语句句之之外外,其其余余语语句的用法与作用均不变。句的用法与作用均不变。5.1.1 LIBNAME语句语句格式格式:LIBNAME 库标记库标记 目录目录;例:例:LIBNAME LC C:EXERCISE;库库标标记记:可可任任意意起起名名,目目录录必必须须用用引引号号括括起

13、起来。来。LIBNAME PAN D:PANYAN;LIBNAMELAA:;5.1.2 DATA语句语句建立永久数据集建立永久数据集:用用LIBNAME语句指定语句指定SAS库标记。库标记。在在DATA语语句句中中写写出出一一级级和和二二级级名名(用用.分分隔隔) 例:例:LIBNAME LA A:; DATA LA.AA;LIBNAME PAN D:PANYAN;DATA PAN.ABC;永久数据集的扩展名SAS数据集文件的扩展名为.SD2,图标为: 。 在同一个LIBNAME语句中可定义多个库标记。LIBNAME LA A: LCC:;永久数据集的调用调用永久数据集:LIBNAME LA

14、A:;PROC PRINT DATA= LA.AA;5.2 数据排序 SAS使使用用SORT过过程程对对数数据据集集中中的数据进行排序。的数据进行排序。SORT过程使用如下二个语句:过程使用如下二个语句:PROC SORT 语句语句BY 语句语句5.2 数据排序 5.2.1 PROC SORT 语句语句格式:格式:PROC SORT 选择项选择项;PROC SORT语句的选择项有二个:语句的选择项有二个:DATA=规定用于排序的数据集。规定用于排序的数据集。OUT= 结果数据集的名称,缺省(即省略结果数据集的名称,缺省(即省略OUT=选择项),则复盖原数据集。选择项),则复盖原数据集。5.2

15、数据排序 5.2.2 BY 语句语句格式:格式: BY DESCENDING 变量变量 . ;BY语句指出用以排序的变量名。语句指出用以排序的变量名。如果需要按如果需要按BY变量值降序排列,则在变量名前变量值降序排列,则在变量名前要用要用DESCENDING指出。指出。如如BY语句中给出多个变量,则先按前一变量值语句中给出多个变量,则先按前一变量值进行分组,在各组中再按后一变量值排序。进行分组,在各组中再按后一变量值排序。 例:data score;input class num sex$ s1-s3 ;total=sum(of s1-s3);cards;1 1001 m 79 96 87 1

16、 1002 f 69 78 922 1003 f 68 87 93 1 1004 m 88 93 902 1005 m 76 89 88run;PROC SORT DATA=SCORE OUT=CS2; BY CLASS ; PROC PRINT; RUN;PROC SORT DATA=SCORE OUT=CS2; BY CLASS DESCENDING TOTAL; PROC PRINT; RUN;5.4 数据集连接数据集连接 SET语语句句可可以以将将两两个个或或更更多多的的数数据据集集连连在在一一起起,形形成一个单独的大的数据集。成一个单独的大的数据集。“纵向连接纵向连接”格式格式:SET 数据集名数据集名 ;5.4.1 变量相同变量相同新新数数据据集集的的变变量量即即原原数数据据集集的的变变量量,观观测测值值个个数数是是各个数据集中观测值个数的和。各个数据集中观测值个数的和。5.4.2 变量不同变量不同新新数数据据集集将将包包括括所所有有的的变变量量。从从某某个个数数据据集集获获得得的的观观测测值值中中,对对于于该该数数据据集集中中没没有有的的变变量量将将用用缺缺项项值值填充填

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号