[工学]08数据步循环与转移控制.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]08数据步循环与转移控制

第8章 数据步循环与转移控制 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 ResDat.class; if age14 then do; h_cm=30.5*height/12; put name= sex= age= h_cm=; end; run; 循环DO语句 DO组中的语句需要被重复执行时要用到循环DO语句。 循环DO语句根据下标变量重复执行DO和END语句之间的语句 语句格式 DO index_variable=specification-1,…specification-N; [一些SAS语句] END; 其中: index-variable选项定义下标变量,用于控制DO组的执行方式和重复次数。 下标变量包含在创建的数据集中,可以用DROP语句删除。 SPECIFICATION选项格式 Start TO stop BY increment WHILE/UNTIL(expression); Specification选项说明: 例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; do i=01jan99d to 01jan2000d by 1; 例句子中,起始值必须全部是数值或全部是字符常数,也可以是变量。字符常数必须用引号括起来。 例8.4 使用表达式选项。 do i=1 to 10 while(xy); do i=2 to 20 by 2 until((x/3)y); 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 y0 then do; put x= y=; z=log(x-y); end; cards; 2 6 5 3 5 -1 ; 例8.6 产生指定观测值个数的数据集。 data a; do n=1 to 100 ; output; end; run; 例中,产生一个含有100个观测值的数据集。 例8.7 自然数求和。 data a; t=0; do n=1 to 100 ; t=t+n; output; end; run; 例中,求1到100的自然数之和。 例8.9 用循环DO语句处理数组。 array day{7} d1-d7; /*定义数组day{7} */ do i=1 to 7; if day{i}=99 then day{i}=100; end; 例中,用循环DO语句处理数组时,便于进行批量更新。 DO OVER语句 DO OVER语句对隐含下标数组元素执行DO组里的语句。 语句格式 DO OVER array-name; [若干SAS语句] END; 其中: 选项array-name规定一个隐含下标数组。 应用举例 例8.10 隐含数组的所有元素乘以100。 data test; input sc01-sc05; array s sc01-sc05; do over s; /*等价于do _i_=1 to 5 */ s=s*100; end; cards; .95 .88 .99 .77 .56 ; run; DO WHILE语句 DO WHILE语句使得当条件成立时重复地执行DO组中的语句。 语句格式 DO WHILE (expression); 选项expression规定任一有效表达式。 应用举例 例8.11 当N值小于5时重复执行DO组中的语句。 data a; n=0 ; do while(n l

文档评论(0)

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

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

1亿VIP精品文档

相关文档