SAS(十)DATA步--控制语句

本文介绍了SAS DATA步中的控制语句,包括DO、DO while、DO until、SELECT、IF、RETURN、GO TO、LINK、CONTINUE和LEAVE等。详细阐述了各语句的功能和使用场景,帮助读者理解如何在SAS编程中灵活运用这些控制结构。
摘要由CSDN通过智能技术生成

SAS(十)DATA步--控制语句

怎样选择使用不同的控制语句

  • DO:多次执行同样的代码块
  • DO while:当while条件为真时,多次执行同样的代码块
  • DO until: 多次执行同样的代码块,直到until条件为真,代码块总会执行一次
  • SELECT:知道明确的离散选择项时使用
  • IF:希望从2个或多个可能的事件中完成一个,允许连续选择项
  • 跳转代码(go to,link):需要暂停主代码,执行标签指明的其它代码
  • 中止代码(return,continue,leave):负责某种形式的中止。
 

DO语句

  • DO语句规定,在DO后面直到出现END语句之前的这些语句作为一个单元被执行。
  • 简单DO语句,常用在if-then/else语句里
  • 循环DO语句,用下标变量规定重复次数
do i=1 to 10;
do i=1 to exit;
do i=2 to 8 by 2;
data a;                                                                                                                                 
   input x @@;                                                                                                                          
   do i=1 to 4;/*把i改成其他字符同样可行*/                                                                                              
   y=4*x;                                                                                                                               
   output; /*如果略去output,则只输出最后一次循环的结果*/                                                                               
   end;                                                                                                                                 
   cards;                                                                                                                               
   11 22 33 44 55 66                                                                                                                    
   ;                                                                                                                                    
   run;                                                                                                                                 
proc print data=a;                                                                                                                      
run;

 部分结果输出

 

data iteratel;                                                                                                                          
  input x @@;                                                                                                                           
  exit=10;                                                                                                                              
  do i=1 to exit;                                                                                                                       
    seed=1; /*初始种子值*/                                                                                                              
    call ranuni(seed,y);                                                                                                                
    z=x*y;                                                                                                                              
        if z>25 then i=exit;                                                                                                            
        output;                                                                                                                         
  end;                                                                                                                                  
cards;                                                                                                                                  
5 1000 2500                                                                                                                             
;                                                                                                                                       
proc print data=iteratel;                                                                                                               
run;

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路易三十六

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值