SAS45[数据步与文件操作]
第四章,第五章
SAS45[数据步与文件操作]
第四章 数据步程序设计数据步的程序代码一般都是顺序执行, 数据步的程序代码一般都是顺序执行, 然而,数据步中有一些控制语句,如分支, 然而,数据步中有一些控制语句,如分支, 循环语句,可控制程序的执行流程. 循环语句,可控制程序的执行流程. IF DO … END GOTO RETURN
SAS45[数据步与文件操作]
4.1 IF 语句两种IF语句 两种 语句: 语句● 条 件 IF 语 句 , 带 有 一 个 THEN 子 句 和 ELSE子句(可选).只对满足 语句中所 子句( 子句 可选) 只对满足IF语句中所 指定条件的观测值才执行SAS语句 . 如果 语句. 指定条件的观测值才执行 语句 THEN子句不被执行, 那么可选择的 子句不被执行, 子句不被执行 那么可选择的ELSE 子句给出另一种替换作用. 子句给出另一种替换作用. 子集IF语句 语句, 子句. ●子集 语句,无THEN子句.用来使 子句 用来使SAS 系统继续处理那些满足IF 子句中条件的观 系统继续处理那些满足 测值. 测值.
SAS45[数据步与文件操作]
IF-THEN/ELSE语句 语句格式: 格式 IF expression THEN statement; <ELSE statement;>说明: 说明: SAS系统首先对跟在 后的表达式 系统首先对跟在IF后的表达式 求值, 系统首先对跟在 后的表达式(expression)求值, 求值 如果结果为真(非零 则执行THEN后的语句.如果为假, 非零), 后的语句. 如果结果为真 非零 ,则执行 后的语句 如果为假, 则去执行ELSE后面的语句,如果没有 后面的语句, 子句, 则去执行 后面的语句 如果没有ELSE子句,则执行下 子句 一个语句. 一个语句. 注意: 注意 之后只允许使用一个语句, 在THEN之后只允许使用一个语句,如果要执行几个 之后只允许使用一个语句 语句,则应用DO-END把要同时执行的几个语句用括起来. 语句,则应用 把要同时执行的几个语句用括起来. 把要同时执行的几个语句用括起来 IF-THEN/ELSE 语句可以嵌套 .
SAS45[数据步与文件操作]
4.2 GO TO (GOTO)语句格式: 格式 GOTO label; 或 GO TO label; 说明: 说明:GO TO (或者 或者GOTO)语句告诉 语句告诉SAS系统,立即 系统, 或者 语句告诉 系统 跳向在GOTO语句中指出的语句, 并从那一点开始 语句中指出的语句, 跳向在 语句中指出的语句 接着执行. 接着执行.GO TO语句和跳向的目标都必须在一个 语句和跳向的目标都必须在一个 DATA步中,跳向的目标语句由 步中, 步中 跳向的目标语句由GO TO语句和目标 语句和目标 语句中的标号来标明. 语句中的标号来标明. label: 标识 标识GOTO目标的语句标号. 目标的语句标号. 目标的语句标号
SAS45[数据步与文件操作]
4.3 RETURN语句格式: 格式:RETURN; RETURN语句的功能是将当前观测值输 语句的功能是将当前观测值输 出到数据集,然后立即将程序流程返回 DATA步的开始处,而不执行其后的语句. 步的开始处, 步的开始处 而不执行其后的语句. GO TO语句经常被 语句经
常被DO-END语句代替. 语句代替. 语句经常被 语句代替
SAS45[数据步与文件操作]
4.4 循环在数据步的一次执行中反复地执行某一 部分语句,这种程序的反复执行称为循环. 部分语句,这种程序的反复执行称为循环. 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; ;
SAS45[数据步与文件操作]
4.4 循环循环语句的格式: DO 指针变量=初值 TO 终值 BY 增量; END ; 说明: DO语句组第一次执行时,指针变量等于 初值.当终值和增量都存在时,则每执行到 END 语句时, 指针变量+增量作为新的指针变量,并 与终值作比较,直到指针变量的值变化超过终值 时才停止执行DO语句组.最后一次执行完后,指 针变量值超过终值.
SAS45[数据步与文件操作]
4.4 循环如果仅有初值, 如果仅有初值 , 则直到一个语句指示 跳出循环体才停止循环. 跳出循环体才停止循环 . 如果初值终值均 未规定,语句组执行一次. 未规定 , 语句组执行一次 . 如果未规定增 增量的缺省值为1. 量,增量的缺省值为 .初值和终值是在第 一次执行循环以前计算的. 一次执行循环以前计算的.
SAS45[数据步与文件操作]
4.4 循环DATA _NULL_; DO I=1 TO 10; PUT I=; END; RUN; PUT语句中变量名后面使用等号,是对 输出值用变量名来标识.称为命名输出. 如:PUT I=;
SAS45[数据步与文件操作]
4.4 循环 双重循环(循环嵌套): DO…; DO…; 外 内 循 …… 循 环 环 …… END; END;
SAS45[数据步与文件操作]
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;
SAS45[数据步与文件操作]
4.4 循环DATA _NULL_; DO I=1 TO 9; DO J=1 TO I; X =I*J; PUT J 1. '*' I 1. '=' END; PUT; END; RUN;
X 2. +2 @;
SAS45[数据步与文件操作]
4.5 其它程序设计中常用语句4.5.1 DELETE 语句格式: 格式:DELETE; DELETE语句告诉 语句告诉SAS系统停止处理当 语句告诉 系统停止处理当 前的观测值, 前的观测值, 且该观测值不被写入正在建立 的数据集中, 系统返回DATA步的开始处 的数据集中,SAS系统返回 系统返回 步的开始处 进行下一次执行. 进行下一次执行.
SAS45[数据步与文件操作]
4.5.2求子集的IF语句格式: IF expression; 使用求子集IF语句,使SAS系统仅继续处 理符合IF语句条件规定的观测值, 因而 所得到的数据集是原数据集的子集.
SAS45[数据步与文件操作]
4.5.2求子集的IF语句如果表达式为真(非零且不缺项 , 如果表达式为真 非零且不缺项), SAS系统 非零且不缺项 系统 继续为正在建立的观测值执行DATA 步中的语句. 步中的语句. 继续为正在建立的观测值执行 如果表达式的值是假(0或缺项 或缺项), 如果表达式的值是假 或缺项 ,SAS系统马上返 系统马上返 回到DATA步的开始, 去进行另一次执行而不输 回到 步的开始, 步的开始 出上一个观测值. 出上一个观测值. 如: IF SEX='F'; 等同于( 等同于(IF SEX='M' THEN DELETE; ; 在结果数据集中所包含的仅仅是SEX的值 在结果数据集中所包含的仅仅是 的值 的那些观测值. 为'F'的那些观
测值. 的那些观测值
SAS45[数据步与文件操作]
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科SAS45[数据步与文件操作]全文阅读和word下载服务。
相关推荐: