4

我有一个 SAS EG 程序,它检查文件是否存在,如果存在则拒绝替换它。

发生这种情况时,我希望 SAS EG 在该程序上显示错误并在日志中显示有意义的自定义错误消息。而且我希望错误消息看起来与人们习惯在日志中看到的其他错误消息相同,以便他们注意它。

现在我刚刚导入了一个名称为我的错误消息的文件。这不是很好,因为它会将找不到文件的消息附加到我要显示的消息中。

有什么方法可以声明存在错误并提供错误消息以放入 LOG

4

1 回答 1

5

SAS 日志使用一种非常简单的方法来更改文本颜色:在日志中显示的文本行中的第一个单词。您可以在and语句中重新创建ERRORWARNINGNOTE消息。%putput

%put NOTE: This is a note;
%put WARNING: This is a warning;
%put ERROR: I AM ERROR;

例如,假设您想在缺少某个值时显示错误。

data have;
    input var;
    datalines;
1
.
2
3
.
;
run;

%put NOTE: Now checking for missing values...;

data _null_;
    set have;

    if(missing(var) ) then 
       put 'ERROR: A missing value for "var" was found at observation ' _N_;
run;

您也可以使用宏来执行此操作,例如在某些检查步骤中创建标志,或使用&syserr自动宏变量。

%macro check;
    %let e  = 0;

    data _null_;
        set have;

        if(missing(var) ) then call symput('e', 1);
    run;

    %if(&e) %then %put ERROR: An error was found.;
%mend;
于 2016-05-24T14:43:32.507 回答