О макросе SAS — как использовать abs () / std()

#sas

#sas

Вопрос:

Я пишу предложение макроса в SAS :

 %macro loop;
%let sigmav=0.1;
.....
%let sigmav_new=std(V);
%if abs(%eval(amp;sigmav-amp;sigmav_new))<0.001 %then %do;
......
%mend;
  

Но всегда есть ошибки abs ( ) и std( ). Итак, мне интересно, существуют ли специальные правила для выражения функции abs () и std() в макросе. Надеюсь на вашу помощь!

Ответ №1:

Если вы хотите вызвать функцию SAS в макросе (и вне этапа обработки данных), вам нужно заключить ее в %sysfunc().

Комментарии:

1. Кроме того, вам нужно будет заменить %eval на %sysevalf, поскольку числа не являются целыми числами.