SAS数据步过程步边界

Step Boundary

SAS编程中,当跨过step boundary时,提交的代码会被触发执行。那么SAS的step boundary有哪些?有:

  • DATA statement
  • PROC statement
  • QUIT statement
  • RUN statement
  • The single semicolon ; statement following a DATALINES statement
  • The four semicolon ;;;; statement following a DATALINES4 statement
  • The very last line of a program in batch or noninteractive processing
  • BYE / ENDSAS statement
    RUN和QUIT是显式执行提交代码的语句,新的DATA或PROC是隐式执行上一个DATA或PROC。

RUN和QUIT的区别

RUN可以追溯到上个世纪老旧大型机时代,那时提交代码并不会立即执行,而是需要显式的敲一个RUN命令,才能触发提交的代码执行(记得最开始接触编程时的BASIC语言也有RUN命令)。对于non-interactive proc, run执行完之后,这个proc也就结束了,而对于interactive proc,该proc执行完后,还保留给proc的环境,可以run新提交的代码,退出proc的交互环境,可以显式的使用quit退出。

RUNQUIT的区别是RUN执行之前提交的statements,而quit除了执行之前提交的statements外,还结束该过程。QUIT语句一般用于RUN-group processing,该过程的结构一般是:

proc run-group-processing;
    ...
    run;     /* execute the first part. */
    .....
    run;     /* execute the second part */
    ....
    run;
quit;    /* end of the processing */

对于RUN-group processing,只有RUN CANCELQUIT可以或遇到新的step boundary才能结束该过程。Base SAS run-group-processing有:

  • catalog
  • datasets
  • plot
  • pmenu

PROC SQL是一个特例, 和run-group processing相似,但是proc sql的每个query语句都是自动执行的,RUN语句和RUN CANCEL语句不起作用,为了结束proc sql,只能用QUIT语句。

REF:
[1]. https://support.sas.com/kb/40/887.html
[2]. https://stackoverflow.com/questions/33764328/quit-vs-run-statements-in-sas/33764972

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值