1. 首页
  2. 文档大全

第五部分sas数据步循环与转移控制.

上传者:2****5 2022-06-17 15:45:53上传 PPT文件 2.18MB
第五部分sas数据步循环与转移控制._第1页 第五部分sas数据步循环与转移控制._第2页 第五部分sas数据步循环与转移控制._第3页

《第五部分sas数据步循环与转移控制.》由会员分享,可在线阅读,更多相关《第五部分sas数据步循环与转移控制.(45页珍藏版)》请在文档大全上搜索。

1、 数据步循环与转移控制数据步循环与转移控制江西财经大学江西财经大学DO语句语句 DO语句必须由一个END语句来结束。 DO和END语句之间的这些语句称为一个DO组。 DO组可以嵌套任意次。 DO语句有5类: 简单DO语句; 循环DO语句; DO OVER语句; DO WHILE语句; DO UNTIL语句。简单简单DO语句语句 语句格式DO; 一些SAS语句END;应用举例应用举例 例8.1 IF/THEN语句用中DO.data a;set dst.bclass;if age14 then do;Height+20put name= sex= age=;end;run;循环循环DO语句语句 D

2、O组中的语句需要被重复执行时要用到循环DO语句。循环DO语句根据下标变量重复执行DO和END语句之间的语句 语句格式DO index_variable=specification-1;一些SAS语句END;其中:index-variable选项定义下标变量,用于控制DO组的执行方式和重复次数。下标变量包含在创建的数据集中,可以用DROP语句删除。 SPECIFICATION选项格式选项格式 Start ; Specification选项说明: Start规定下标变量的起始值To Stop规定下标变量的终止值Increment规定步长While Expression表达式在每次循环执行前计算Un

3、til Expression表达式在每次循环执行以后计算例8.2 缺省的步长为1。do I=1 to 1000;do I=1 to y+3;do I=1 to exit;例8.3 起始值例句。do i=5;do i=1 to n ;do i=n to 1 by 1;do i=k+1 to n-1;do i=1 to k-1, k+1 to n;do i=2, 3, 5, 7, 11, 13, 17;do i=0.1 to 0.9 by 0.1, 1 to 10 by 1, 20 to 100 by 10;do i=saturday, sunday;do i=01jan99d, 25feb99d

4、;do i=01jan99d to 01jan2000d by 1;例句子中,起始值必须全部是数值或全部是字符常数,也可以是变量。字符常数必须用引号括起来。 例8.4 使用表达式选项。do i=1 to 10 while(xy);do i=10 to 0 by 1 while(month=jan);应用举例应用举例 例8.5 用GO TO语句跳出循环体。data a;input x y; if xy then goto skip; /*skip是循环体外的语句标号*/y=log(y-x);yy=y-20;skip: if y=5时停止。data a;n=0;do until(n=5);put

5、n=;n+1;end;run; END语句语句 END语句是组成DO组或SELECT组的最后一个语句。 语句格式语句格式END; 应用举例应用举例 DO;若干个SAS语句END; SELECT (expression); When (expression) SAS语句; Otherwise SAS语句; END; SELECT语句语句 SELECT语句选择执行SAS语句。 语句格式SELECT; WHEN (when-expression-1) statement; WHEN(when-expression-1) statement; END; 选项说明: select-expression选

6、择表达式when-expression规定任意有效的一个SAS表达式。Statement任意可执行的SAS语句应用举例应用举例 例8.13 有SELECT表达式的SELECT语句。data a;set dst.bclass;obs=_n_;x=uniform(0);select (obs);when (1) x=x*10;when (2,4,6);when (3,5,7,13,15,17) x=x*100;otherwise x=1;end;run;例中,根据OBS来计算新变量X的值。当OBS为1时,执行x=x*10。当OBS为2,4,6时,X值不变。当OBS为3,5,7,13,15,17时,

7、执行X=X*100。OBS为其它值时,执行x=1。 例8.14 没有SELECT表达式的SELECT语句。data _null_;do mon=jan,feb,mar,apr,may,jun,jul,aug,sep;select; when (mon in (jun,jul,aug) put summer mon=;when (mon in (mar,apr,may) put spring mon=;otherwise put fall or winter mon=;end;end;run; 361 data _null_;362 do mon=jan,feb,mar,apr,may,jun,

8、jul,aug,sep;363 select;364 when (mon in (jun,jul,aug) put summer mon=;365 when (mon in (mar,apr,may) put spring mon=;366 otherwise put fall or winter mon=;367 end;368 end;369 run;fall or wintermon=janfall or wintermon=febspring mon=marspring mon=aprspring mon=maysummer mon=junsummer mon=julsummer mo

9、n=augfall or wintermon=sepNOTE: “DATA 语句”所用时间(总处理时间): 实际时间 0.03 秒 CPU 时间 0.01 秒例8.15 SELECT组的正确及错误用法举例。select(x);when (x=2) put two; /*错误用法*/end;select(x);when(2) put two; /*正确用法*/end;select;when (x=2) put two; /*正确用法*/end;run;例中,后两个程序的效果相同。 IF语句语句IF语句的两种类型:条件IF语句,含有一个THEN子句或ELSE子句;子集IF语句,没有子句。IF-TH


文档来源:https://www.renrendoc.com/paper/212628785.html

文档标签:

下载地址