SAS软件应用基础第四章.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 数据步的程序设计 Program Design of Data Step 生物医学工程研究所 Add: 教学八楼三层东 Tel: 82035 Lecturer: 张玉华 Email: zhangyh@sdu.edu.cn Contents 4.1 IF语句 分支:根据某种条件的满足与否来执行不同的操作,称为分支,常用IF 语句完成。Branched program 两种IF语句: 条件IF语句,带有一个THEN子句和ELSE子句( ELSE子句可选)。 求子集IF语句,无THEN和ELSE子句。用来使SAS系统继续处理那些满足IF子句中条件的观测值。 IF-THEN/ELSE语句 格式: IF expression THEN statement; ELSE statement; 说明: SAS系统先对expression求值, 如结果为真(非零),则执行THEN后的语句 如结果为假,则执行ELSE后面的语句,如果没有ELSE子句,则执行下一个语句 在THEN之后只允许使用一个语句,如果要执行几个语句,则应用DO-END把要同时执行的几个语句括起来。 IF-THEN/ELSE语句可以嵌套 例1:在程序执行时显示总成绩280的观测 DATA A; INPUT NUM S1-S3 @@; TOTAL=SUM(OF S1-S3); IF TOTAL280 THEN PUT NUM TOTAL; CARDS; 1001 79 96 87 1002 89 96 98 1003 87 69 81 run; 例3:Do - End 语句组: 对考试成绩不及格的学生指明需要补考,并在日志窗口显示。 Data a; Input num x @@; If x60 then do; bk=1; put num x bk=; End; Else bk=0; Cards; 101 80 102 90 103 85 104 50 105 100 Run; 4.2 GO TO (GOTO)语句 格式: GOTO label; 或 GO TO label; 说明: 告诉SAS系统,立即跳向在GOTO语句中指出的语句,并从那一点开始接着执行。 GOTO语句和跳向的目标都必须在同一个DATA步中 跳向的目标语句由GOTO语句和目标语句中的标号来标明。 label: 标识GOTO目标的语句标号。 4.3 RETURN语句 格式:RETURN; 说明: RETURN语句的功能是将当前观测值输出到数据集,然后立即将程序流程返回DATA步的开始处,而不执行其后的语句。 GOTO和RETURN语句经常被DO-END语句代替。 DATA RECORD; INPUT X Y @@; IF 1=X=5 THEN GOTO OK; X=3; COUNT+1; RETURN; OK: SUMX+X; CARDS; 3 5 7 9 2.7 3.8 59 10 PROC PRINT; DATA RECORD; INPUT X Y @@; IF X1 OR X5 THEN DO; X=3; COUNT+1; END; ELSE SUMX+X; CARDS; 3 5 7 9 2.7 3.8 59 10 PROC PRINT; DATA RECORD; INPUT X Y @@; IF X1 OR X5 THEN DO; X=3; COUNT+1; END; SUMX+X; CARDS; 3 5 7 9 2.7 3.8 59 10 PROC PRINT; 4.4 循环(Cycling program)设计 在数据步的一次执行中反复地执行某一部分语句,这种程序的反复执行称为循环。 例: DATA _NULL_; I=1; K: PUT I; I=I+1; IF I=10 THEN GOTO K; RUN; 格式:DO 指针变量=初值 TO 终值 BY 增量; END ; 说明: DO语句组第一次执行时,指针变量等于初值。 每执行到END语句时,指针变量+增量作为新的指针变量,并与终值作比较,直到指针变量的值变化超过终值时才停止。 最后一次执行完后,指针变量值超过终值。 如果仅有初值,则直到一个语句指示跳出循环体才停止循环。 如果初值终值均未规

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档