




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 数据步的程序设计 Program Design of Data Step,生物医学工程研究所 Add: 教学八楼三层东 Tel: 82035 Lecturer: 张玉华 Email: ,Contents,4.1 IF 语句 4.2 GO TO (GOTO)语句 4.3 RETURN语句 4.4 循环语句DO END 4.5 其它程序设计中常用语句 Delete 求子集的if语句,数据步的程序代码一般都是顺序执行, 数据步中有一些控制语句,如分支、循环语句,可控制程序的执行流程。,4.1 IF语句,分支:根据某种条件的满足与否来执行不同的操作,称为分支,常用IF 语句完成。Branched program 两种IF语句: 条件IF语句,带有一个THEN子句和ELSE子句( ELSE子句可选)。 求子集IF语句,无THEN和ELSE子句。用来使SAS系统继续处理那些满足IF子句中条件的观测值。,格式: IF expression THEN statement; 说明: SAS系统先对expression求值, 如结果为真(非零),则执行THEN后的语句 如结果为假,则执行ELSE后面的语句,如果没有ELSE子句,则执行下一个语句 在THEN之后只允许使用一个语句,如果要执行几个语句,则应用DO-END把要同时执行的几个语句括起来。 IF-THEN/ELSE语句可以嵌套,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;,例2:口腔科体检,记录检查值为: 0-正常,1-龋齿,2-龋齿已填充, 3-因龋齿失牙,4-其他原因失牙。 通过牙齿状态调查判断患龋齿与失牙病情。 Data a; Input x ; If 1=1 ,例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: if 嵌套 data ; input X Y; IF X=0 THEN IF Y=0 THEN PUT X ZERO,Y NONZERO; ELSE PUT X ZERO,Y ZERO; ELSE PUT X NONZERO; cards; 0 1 0 0 1 0 0 3 run;,4.2 GO TO (GOTO)语句,格式: GOTO label; 或 GO TO label; 说明: 告诉SAS系统,立即跳向在GOTO语句中指出的语句,并从那一点开始接着执行。 GOTO语句和跳向的目标都必须在同一个DATA步中 跳向的目标语句由GOTO语句和目标语句中的标号来标明。 label: 标识GOTO目标的语句标号。,DATA INFO; INPUT X Y ; IF 1=X=5 THEN GO TO OK; X=3; COUNT+1; OK: SUMX+X; CARDS; 3 5 7 9 2.7 3.8 59 10 ; PROC PRINT; Run;,OBS X Y COUNT SUMX 1 3 5 0 3 2 3 9 1 6 3 2.7 3.8 1 8.7 4 3 10 2 11.7,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;,OBS X Y COUNT SUMX 1 3 5 0 3 2 3 9 1 3 3 2.7 3.8 1 5.7 4 3 10 2 5.7,DATA RECORD; INPUT X Y ; IF 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 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;,DATA _NULL_; DO I=1 TO 10; PUT I=; END; RUN;,命名输出,格式:DO 指针变量=初值 TO 终值 BY 增量; END ; 说明: DO语句组第一次执行时,指针变量等于初值。 每执行到END语句时,指针变量+增量作为新的指针变量,并与终值作比较,直到指针变量的值变化超过终值时才停止。 最后一次执行完后,指针变量值超过终值。 如果仅有初值,则直到一个语句指示跳出循环体才停止循环。 如果初值终值均未规定,语句组执行一次。 如果未规定增量,增量的缺省值为1。,例:打印乘法九九表 DATA _NULL_; DO I=1 TO 9; DO J=1 TO I; X=I*J; PUT (J*5) X ; END; PUT; END; RUN;,绝对列指针控制,续行符,在一个数据步有多个input (put)时用,换行,例:打印乘法九九表 DATA _NULL_; DO I=1 TO 9; DO J=1 TO I; X=I*J; PUT I * J = X ; END; PUT; END; RUN;,利用双重循环组织分类数据: 例:研究某降糖药不同剂量的疗效,测量II型糖尿病患者治疗4周后餐后2小时血糖下降值(mmol/L),如表:,Data a; Do i=1 to 16; Do j=1 to 3; Input x ; Output; * Output:直接将变量当前值写入数据集; End; End; Cards; 5.6 -0.6 12.4 9.5 5.7 0.9 6.0 12.8 7.0 8.7 4.1 3.9 9.2 -1.8 1.6 5.0 -0.1 6.4 3.5 6.3 3.0 5.8 12.7 3.9 8.0 9.8 2.2 15.5 12.6 1.1 11.8 2.0 2.7 16.3 5.6 7.8 11.8 7.0 6.9 14.6 7.9 1.5 4.9 4.3 9.4 8.1 6.4 3.8 ; Proc anova; Class j; Model x= j; Run;,4.5 其它程序设计中常用语句,4.5.1 DELETE 语句 格式:DELETE; 说明:告诉SAS系统停止处理当前的观测值,且该观测值不被写入正在建立的数据集中,SAS系统返回DATA步的开始处进行下一次执行。,DATA STUDENTS; INPUT ID 1-5 ENGLISH 6-8 TEST1 14-16 TEST2 18-20; IF ENGLISH60 THEN DELETE; TOTAL=SUM(OF TEST1 TEST2 ENGLISH); CARDS; 88011100 78 90 88012 97 86 100 88013 59 68 88 ; RUN;,4.5.2求子集的IF语句 格式: IF expression; 说明: 使用求子集IF语句,使SAS系统仅继续处理符合IF语句条件规定的观测值,所得到的数据集是原数据集的子集。 如果表达式为真(非零且不缺项),SAS系统继续为正在建立的观测值执行DATA步中的语句。 如果表达式的值是假(0或缺项),SAS系统马上返回到DATA步的开始,去进行另一次执行而不输出上一个观测值。 如: IF SEX=F;,例:建立Children的子集Baby和Girls。 DATA CHILDREN; INPUT NUM $ SEX $ MONTH ; CARDS; 1001 F 8 1002 M 9 1003 F 17 1004 M 14 DATA BABY; SET CHILDREN; IF MONTH=12; DATA GIRLS; SET CHILDREN; IF SEX=F; RUN;,或用 Delete
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国PU色浆数据监测研究报告
- 2025年中国PE发泡粘贴板材数据监测报告
- 2025年中国LCD彩色电视机数据监测报告
- 2025年中国D型插座数据监测研究报告
- 2025年中国8通道继电器输出卡数据监测报告
- 2025年中国2,2,6,6-四甲基哌啶数据监测报告
- 2025至2030年中国高碘高(畜禽用)市场分析及竞争策略研究报告
- 2025至2030年中国防水油毡基布市场分析及竞争策略研究报告
- 2025至2030年中国钢丝打磨轮市场分析及竞争策略研究报告
- 2025至2030年中国货展架市场分析及竞争策略研究报告
- 2025年中国农机流通行业市场全景评估及发展战略规划报告
- 2025-2030中国洗胃机产业运营现状分析与未来前景趋势展望报告
- Unit 2 Home Sweet Home 第3课时(Section A 3a-3c) 2025-2026学年人教版英语八年级下册
- 安全生产月题库-安全生产知识竞赛题库(1800道)
- 2025年计划生育与妇幼健康考试试题及答案
- 2025至2030中国废铜行业发展现状及发展趋势与投资风险报告
- 血管内导管相关性血流感染预防与诊治2025
- 【高二下期末】广东省东莞市2021-2022学年高二下学期期末教学质量监测英语试题(解析版)
- 2025年普通高等学校招生全国统一考试数学试题(全国二卷)(有解析)
- 无人飞机农业植保应用技术 课件17、极飞P40农业无人飞机作业-3
- 呼吸病区进修管理制度
评论
0/150
提交评论