欢迎来到天天文库
浏览记录
ID:45077767
大小:479.00 KB
页数:25页
时间:2019-11-09
《SAS软件应用基础第四章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章数据步的程序设计ProgramDesignofDataStep生物医学工程研究所Add:教学八楼三层东Tel:82035Lecturer:张玉华Email:zhangyh@sdu.edu.cnContents4.1IF语句4.2GOTO(GOTO)语句4.3RETURN语句4.4循环语句DO…END4.5其它程序设计中常用语句Delete求子集的if语句数据步的程序代码一般都是顺序执行,数据步中有一些控制语句,如分支、循环语句,可控制程序的执行流程。4.1IF语句分支:根据某种条件的满足与否来执行不同的操作,称为分
2、支,常用IF语句完成。Branchedprogram两种IF语句:条件IF语句,带有一个THEN子句和ELSE子句(ELSE子句可选)。求子集IF语句,无THEN和ELSE子句。用来使SAS系统继续处理那些满足IF子句中条件的观测值。格式:IFexpressionTHENstatement;说明:SAS系统先对expression求值,如结果为真(非零),则执行THEN后的语句如结果为假,则执行ELSE后面的语句,如果没有ELSE子句,则执行下一个语句在THEN之后只允许使用一个语句,如果
3、要执行几个语句,则应用DO-END把要同时执行的几个语句括起来。IF-THEN/ELSE语句可以嵌套IF-THEN/ELSE语句例1:在程序执行时显示总成绩>280的观测DATAA;INPUTNUMS1-S3@@;TOTAL=SUM(OFS1-S3);IFTOTAL>280THENPUTNUMTOTAL;CARDS;100179968710028996981003876981run;例2:口腔科体检,记录检查值为:0-正常,1-龋齿,2-龋齿已填充,3-因龋齿失牙,4-其他原因失牙。通过牙齿状态调查判断患龋齿与失牙病情。
4、Dataa;Inputx@@;If1<=x<=3Thenhq=1;*x>=1&x<=3;Elsehq=0;If3<=x<=4Thensy=1;*x>=3&x<=4;Elsesy=0;Cards;01234;Procprint;Run;例3:Do-End语句组:对考试成绩不及格的学生指明需要补考,并在日志窗口显示。Dataa;Inputnumx@@;Ifx<60thendo;bk=1;putnumxbk=;End;Elsebk=0;Cards;10180102901038510450105100Run;例4:if嵌套dat
5、a;inputXY@@;IFX=0THENIFY^=0THENPUT'XZERO,YNONZERO';ELSEPUT'XZERO,YZERO';ELSEPUT'XNONZERO';cards;01001003run;4.2GOTO(GOTO)语句格式:GOTOlabel;或GOTOlabel;说明:告诉SAS系统,立即跳向在GOTO语句中指出的语句,并从那一点开始接着执行。GOTO语句和跳向的目标都必须在同一个DATA步中跳向的目标语句由GOTO语句和目标语句中的标号来标明。label:标识GOTO目标的语句标号。DAT
6、AINFO;INPUTXY@@;IF1<=X<=5THENGOTOOK;X=3;COUNT+1;OK:SUMX+X;CARDS;35792.73.85910;PROCPRINT;Run;OBSXYCOUNTSUMX135032391632.73.818.74310211.74.3RETURN语句格式:RETURN;说明:RETURN语句的功能是将当前观测值输出到数据集,然后立即将程序流程返回DATA步的开始处,而不执行其后的语句。GOTO和RETURN语句经常被DO-END语句代替。DATARECORD;INPUTXY@
7、@;IF1<=X<=5THENGOTOOK;X=3;COUNT+1;RETURN;OK:SUMX+X;CARDS;35792.73.85910PROCPRINT;OBSXYCOUNTSUMX135032391332.73.815.7431025.7DATARECORD;INPUTXY@@;IFX<1ORX>5THENDO;X=3;COUNT+1;END;ELSESUMX+X;CARDS;35792.73.85910PROCPRINT;DATARECORD;INPUTXY@@;IFX<1ORX>5THENDO;X=3;CO
8、UNT+1;END;SUMX+X;CARDS;35792.73.85910PROCPRINT;4.4循环(Cyclingprogram)设计在数据步的一次执行中反复地执行某一部分语句,这种程序的反复执行称为循环。例:DATA_NULL_;I=1;K:PUTI;I=I+1;IFI<=10THENGOTOK;RUN;DA
此文档下载收益归作者所有