快速提问
是否有一种单行(或相当短的)方法来取消在窗口环境中执行进一步的 SAS 语句。
这些是我所知道的方法,但它们会让人厌烦,尤其是在带有大量评论的大型程序中。我尝试了ABORT
andSTOP
语句,但它们关闭了窗口环境,但我想要的只是在某个点停止执行并继续我的快乐方式。
谢谢
这是 SAS-L 时常出现的问题。答案是,这很大程度上取决于你在做什么。
run cancel
如果您希望由于错误而停止执行,则该方法可能是最好的。在程序的顶部,您执行以下操作:
%let cancel =; *or any macro variable name, but cancel is most logical;
然后在每个运行步骤中你有:
data whatever;
... do stuff ...;
run &cancel;
每次你有一些潜在的错误,你检查错误情况,然后如果它命中,%let cancel=cancel;
你很好。
如果您正在使用宏,您可以顺利退出宏,%abort
只要您不使用任何选项或仅使用cancel
. 根据您正在执行的操作,您可能会将代码设置为在一个(或多个宏)中运行并使用此选项(尽管缺点是会丢失一些日志清晰度)。
最后,如果您只是对能够运行代码的子集感兴趣,我建议您在多个 SAS 程序中为您可能想要单独运行的位编写代码,然后使用%include
主程序将它们组合在一起使用您可能想要设置的任何共享宏变量。这类似于在 EG 中如何构建许多较小的程序,然后使用流程图对它们进行分组。
我用过以下
%abort cancel;
我也一直在寻找这个 - 这个文档不好。反复试验(叹息……)。令人惊讶的是,这个未记录的功能对我有用:
data _null_ ;
ABORT CANCEL ;
run ;
很简单!之后没有执行任何操作,但 SAS 应用程序仍保持打开状态。