Проверьте, является ли параметр 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 позволяет вам выполнить функцию шага данных в коде макроса.

Другие вопросы по тегам