停止SAS执行

Pan*_*ane 10 sas

快问

是否有一个单行(或相当简短)的方法来取消进一步的SAS语句的执行与窗口环境.

这些是我所知道的方法,但它们令人厌倦,特别是在大量的评论中.我尝试了ABORTSTOP语句,但他们关闭了窗口环境但我想要的只是在某一点停止执行并继续我的快乐方式.

谢谢

Joe*_*Joe 7

这是SAS-L经常出现的问题.答案是,这主要取决于你在做什么.

run cancel如果您希望因错误而停止执行,则该方法可能是最佳方法.在程序的顶部,您可以:

%let cancel =; *or any macro variable name, but cancel is most logical;
Run Code Online (Sandbox Code Playgroud)

然后在每个运行步骤中,您有:

data whatever;
... do stuff ...;
run &cancel;
Run Code Online (Sandbox Code Playgroud)

每次你有一些潜在的错误,你检查错误情况,然后它是否命中,%let cancel=cancel;你是好的.

如果您使用的是宏,%abort只要您不使用任何选项或仅使用宏,就可以顺利退出宏cancel.根据您正在做的事情,您可以将代码设置为在宏(或宏)中运行并使用此选项(尽管缺点是会丢失一些日志清晰度).

最后,如果您对能够运行代码的子集感兴趣,我建议您在多个SAS程序中编写代码,以获取可能需要单独运行的位,然后使用%include主程序将它们全部组合在一起.您可能想要设置共享的任何宏变量.这类似于在EG中如何构建许多较小的程序,然后使用流程图对它们进行分组.

  • FYI`proc sql`也有类似的选项叫做noexec`.完整的语法是`proc sql noexec; .... 做东西.... ; quit`.proc的内容不会被执行.您也可以使用Joe上面描述的相同技术. (2认同)