【问题标题】:Raise error in SAS EG在 SAS EG 中引发错误
【发布时间】:2016-05-24 06:36:29
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: sas raiserror


    【解决方案1】:

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

    %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;
    

    【讨论】:

    • 这太棒了!谢谢!
    猜你喜欢
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多