Проверьте, является ли параметр SAS DIS нулевым
В SAS DIS я установил параметры даты на работу. Я попытался установить значения по умолчанию с помощью выпадающего меню, но каждый раз, когда я получаю сообщение об ошибке
Синтаксическая ошибка, ожидание одного из следующих:!,!!, &, *, **, +, -, /, <, <=, <>, =,>,><,>=, AND, EQ, GE, GT, IN, LE, LT, MAX, MIN, NE, NG, NL, NOTIN, OR, ^ =, |, ||, ~ =.
Поэтому я решил попробовать проверить, является ли параметр нулевым, прежде чем продолжить, но ни одна из моих различных попыток не увенчалась успехом. Есть ли способ сделать это с помощью пользовательского кода? Что-то вроде
if(&date_param = .) then do;
date = today();
else do;
date = &date_param;
end;
Я попробовал это в макросе, и это не сработало.
Большая благодарность
1 ответ
Предполагая, что это похоже на стандартную макро-переменную SAS, несколько вещей.
Во-первых, нулевой параметр будет буквально пустым, а не точкой (это для числовых переменных набора данных). На шаге данных вы можете проверить это так:
if "&date_param." = " " then do;
Во-вторых, в зависимости от контекста вам может потребоваться сделать это в макросе. Если вы устанавливаете другой параметр, вам может потребоваться:
%if &date_param. eq %then %do;
%let date=%sysfunc(today());
%end;
%else %do;
%let date = &date_param.;
%end;
%sysfunc
позволяет вам выполнить функцию шага данных в коде макроса.