Я искал в то время как эквивалент для в цикле (например, в Python или R) в SAS 9.3 Macro Language. DO loop кажется, что это решение, но не работает точно так, как я хочу. Я основал способ сделать это на шаге данных с помощью цикла DO, но он не работает с языком макросов. Например, на этапе обработки данных, этот код работает:«Ибо в» эквивалентной петли в SAS 9.3
DATA _NULL_;
DO i = 1,3,5,9;
PUT i;
END;
RUN;
А потом журнал оперативно, как и ожидалось:
1
3
5
9
Когда я пытаюсь сделать то же самое с % DO цикл в Макро, у меня есть ошибка.
%MACRO test();
%DO i = 1,2,4,9 ;
%PUT i = &i;
%END;
%MEND;
%test();
Журнал promp эти сообщения:
ERROR: Expected %TO not found in %DO statement.
ERROR: A dummy macro will be compiled
Я совершенно новое в SAS и StackOverflow, так что я надеюсь, что мой вопрос не слишком глуп. Это так просто сделать в Python и R, тогда у него должен быть простой способ сделать это в SAS.
Спасибо за помощь - J. Muller
Я пробовал, и он отлично работает. Это не так просто, как синтаксис Python или R, но он хорошо работает с списком символов. Благодаря! – jomuller