停止SAS中的流程

时间:2017-05-05 21:31:58

标签: sas

我有一个如下的SAS程序,它试图检查某个文件是否存在。

%let testfile = \\some.network.share\SOMEFILE.CSV;

%macro findit;
  %if %sysfunc(fileexist(&testfile)) %then %do;
    %put The file exists! ;
  %end;
  %else %put The file does not exist! ;
%mend;

%findit;

我想按如下方式更改程序:如果找不到该文件,则应忽略SAS程序的其余部分以及Process Flow中的以下程序,并且分析应该在那里结束。

这可能吗?

1 个答案:

答案 0 :(得分:0)

查看%goto的文档并使用如下:

%macro findit;
  %if %sysfunc(fileexist(&testfile)) %then %do;
    %put The file exists! ;
  %end;
  %else %do;
    %put The file does not exist! ;
    %goto exit; 
  %end;


%exit:
%mend;

请注意,目标%exit后面跟冒号,而不是分号。