Я пытаюсь начать использовать SAS. Я создаю набор данных, в котором количество переменных зависит от периода, выбранного пользователем. То, что я хочу сделать, это цикл через эти переменные. Макрос Я пытаюсь использовать для этого (я justed фиксированной даты для примера):Функция использования в SAS% do
%MACRO DO_PERIOD;
%DO I = 1 %TO %SYSFUNC(intck('month', "01JUL2008"d, "31JUL2009"d));
%PUT %I
%END;
%MEND DO_PERIOD;
К сожалению запуска этого макроса дает следующее сообщение об ошибке:
ERROR: A character operand was found in the %EVAL function or %IF
condition where a numeric operand is required.
The condition was: %sysfunc(intck('month', "01JUL2008"d, "31JUL2009"d))
ERROR: The %TO value of the %DO I loop is invalid.
ERROR: The macro DO_PERIOD will stop executing.
Я пытался многочисленные способы оценки функция intck (например,% eval (% sysfunc (....)), используя вход (...)), но без каких-либо результатов. Я надеюсь, что кто-то из вас знает ответ на оценку функции в выражении% do.
Большое вам спасибо! Apersand был опечаткой при вводе кода в StackExchange. После некоторых экспериментов я обнаружил, что реальной проблемой были кавычки вокруг «МЕСЯЦА». Оставляя это, решает проблему! –