Error handling SAS-如果输入数据集中缺少变量,则将错误写入日志

Error handling SAS-如果输入数据集中缺少变量,则将错误写入日志,error-handling,sas,sas-macro,Error Handling,Sas,Sas Macro,如果输入数据集中不存在变量,我想将错误消息写入SAS日志。我们正在使用一个宏,该宏根据另一个变量的值(var=site)差异分配一个变量(datex)值。如果输入数据集中缺少站点,则会在日志中添加一条注释(我想?),但我想写一条红色的错误消息,让用户知道他们的输入数据集中缺少“site”变量。有什么想法吗?谢谢你的帮助 例: 如果变量站点不在数据集中,则在日志中打印错误。宏“macro\u to\u create\u datex”使用“site”的值来分配datex。默认情况下,put语句写入日

如果输入数据集中不存在变量,我想将错误消息写入SAS日志。我们正在使用一个宏,该宏根据另一个变量的值(var=site)差异分配一个变量(datex)值。如果输入数据集中缺少站点,则会在日志中添加一条注释(我想?),但我想写一条红色的错误消息,让用户知道他们的输入数据集中缺少“site”变量。有什么想法吗?谢谢你的帮助

例:


如果变量站点不在数据集中,则在日志中打印错误。宏“macro\u to\u create\u datex”使用“site”的值来分配datex。

默认情况下,
put
语句写入日志

只要以
错误:
警告:
开始您的消息,它就会被适当地突出显示

假设您通过名为
key
的变量标识数据:

data want;
    set have; 
    if missing(site) then put "ERROR: missing site for observation " _N_ key=;
    %macro_to_create_datex;
run;

默认情况下,
put
语句写入日志

只要以
错误:
警告:
开始您的消息,它就会被适当地突出显示

假设您通过名为
key
的变量标识数据:

data want;
    set have; 
    if missing(site) then put "ERROR: missing site for observation " _N_ key=;
    %macro_to_create_datex;
run;

通常,您不会在数据步骤中检查这一点,而是在宏中检查。SASHELP.vcolumn包含所有数据集中的变量列表,可用于检查变量,或者proc内容可以将列表通过管道传送到数据集,以便更快地进行检查。通常,您不会在数据步骤中检查此列表,而是在宏中检查此列表。SASHELP.vcolumn包含所有数据集中的变量列表,可用于检查变量,或者proc内容可将列表通过管道传送到数据集,以便更快地进行检查。