第四章数据步程序设计 数据步的程序代码一般都是顺序执行 然而,数据步中有一些控制语句,如分支、 循环语句,可控制程序的执行流程。 IF D0.. END GOTO RETURN
第四章 数据步程序设计 数据步的程序代码一般都是顺序执行, 然而,数据步中有一些控制语句,如分支、 循环语句,可控制程序的执行流程。 IF DO … END GOTO RETURN
4.1R语句 两种IF语句: ●条件IF语句,带有一个TEN子句和 ELSE子句(可选)。只对满足F语句中所 指定条件的观测值才执行SAS语句。如果 THEN子句不被执行,那么可选择的ELSE 子句给出另一种替换作用。 ●子集F语句,无THEN子句。用来使SAS 系统继续处理那些满足F子句中条件的观 测值
4.1 IF 语句 两种IF语句: ●条件IF语句,带有一个THEN子句和 ELSE子句(可选)。只对满足IF语句中所 指定条件的观测值才执行SAS语句。如果 THEN子句不被执行,那么可选择的ELSE 子句给出另一种替换作用。 ●子集IF语句,无THEN子句。用来使SAS 系统继续处理那些满足IF 子句中条件的观 测值
IF-THEN/ELSE语句 格式: IF expression THEN statement; <ELSE statement;> 说明: SAS系统首先对跟在F后的表达式(expression)求值, 如果结果为真(非零),则执行THEN后的语句。如果为假, 则去执行ELSE后面的语句,如果没有ELSE子句,则执行下 一 个语句。 注意: 在THEN之后只允许使用一个语句,如果要执行几个 语句, 则应用DO-END把要同时执行的几个语句用括起来。 F-THEN/ELSE语句可以嵌套
IF-THEN/ELSE语句 格式: IF expression THEN statement; <ELSE statement;> 说明: SAS系统首先对跟在IF后的表达式(expression)求值, 如果结果为真(非零),则执行THEN后的语句。如果为假, 则去执行ELSE后面的语句,如果没有ELSE子句,则执行下 一个语句。 注意: 在THEN之后只允许使用一个语句,如果要执行几个 语句,则应用DO-END把要同时执行的几个语句用括起来。 IF-THEN/ELSE 语句可以嵌套
4.2GOT0(GOTO)语句 格式: GOTO label; 或GO TO label; 说明: GOTO(或者GOTO)语句告诉SAS系统,立即 跳向在G0TO语句中指出的语句,并从那一点开始 接着执行。GOTO语句和跳向的目标都必须在一个 DATA步中,跳向的目标语句由GOTO语句和目标 语句中的标号来标明。 label:标识GOTO目标的语句标号
4.2 GO TO (GOTO)语句 格式: GOTO label; 或 GO TO label; 说明: GO TO (或者GOTO)语句告诉SAS系统,立即 跳向在GOTO语句中指出的语句,并从那一点开始 接着执行。GO TO语句和跳向的目标都必须在一个 DATA步中,跳向的目标语句由GO TO语句和目标 语句中的标号来标明。 label: 标识GOTO目标的语句标号
4.3 RETURN语句 格式:RETURN; RETURN语句的功能是将当前观测值输 出到数据集,然后立即将程序流程返回DATA 步的开始处,而不执行其后的语句 GOTO语句经常被DO-END语句代替
4.3 RETURN语句 格式:RETURN; RETURN语句的功能是将当前观测值输 出到数据集,然后立即将程序流程返回DATA 步的开始处,而不执行其后的语句。 GO TO语句经常被DO-END语句代替