#error-handling #sas #sas-macro
#обработка ошибок #sas #sas-макрос
Вопрос:
Я хотел бы записать сообщение об ошибке в журнал SAS, если переменная во входном наборе данных не существует. Мы используем макрос, который дифференциально присваивает переменной (datex) значение на основе значения другой переменной (var = site). Если сайт отсутствует во входном наборе данных, в журнал будет добавлена заметка (я думаю?) но я хочу написать большое красное сообщение об ошибке, чтобы пользователи знали, что в их входном наборе данных отсутствует переменная ‘site’. Есть идеи? Спасибо за помощь!
бывший:
data want;
set have;
%macro_to_create_datex;
run;
если переменной site нет в наборе данных have, затем напечатайте ошибку в журнале. Макрос ‘macro_to_create_datex’ использует значение ‘site’ для присвоения datex.
Комментарии:
1. Обычно вы проверяете это не на шаге обработки данных, а в макросе. SASHELP.vcolumn содержит список переменных во всех наборах данных и может использоваться для проверки переменных, или содержимое процедуры может передавать список в набор данных для немного более быстрой проверки.
Ответ №1:
По умолчанию put
оператор записывает в журнал.
Просто начните свое сообщение с ERROR:
или WARNING:
, и оно будет выделено соответствующим образом.
Предполагая, что вы идентифицируете свои данные с помощью переменной с именем key
:
data want;
set have;
if missing(site) then put "ERROR: missing site for observation " _N_ key=;
%macro_to_create_datex;
run;