这是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中如何构建许多较小的程序,然后使用流程图对它们进行分组.