10

快速提问

是否有一种单行(或相当短的)方法来取消在窗口环境中执行进一步的 SAS 语句。

这些是我所知道的方法,但它们会让人厌烦,尤其是在带有大量评论的大型程序中。我尝试了ABORTandSTOP语句,但它们关闭了窗口环境,但我想要的只是在某个点停止执行并继续我的快乐方式。

谢谢

4

3 回答 3

7

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

于 2013-08-16T20:22:39.790 回答
1

我用过以下

%abort cancel;
于 2013-08-16T23:13:39.597 回答
0

我也一直在寻找这个 - 这个文档不好。反复试验(叹息……)。令人惊讶的是,这个未记录的功能对我有用:

data _null_ ;
  ABORT CANCEL ;
run ;

很简单!之后没有执行任何操作,但 SAS 应用程序仍保持打开状态。

于 2019-01-02T19:11:30.847 回答