Документация написана для чтения, простой поиск «SAS 9.4 Macro Do» должен объяснить все это - start, stop и by - целые числа - целые числа в том смысле, что любое выражение источника макроса на их месте вычисляется неявно или явно в целое число в нужное время.
Макрос, который вы кодировали, немного странный. Он сгенерирует несколько шагов данных, которые перезаписывают один и тот же набор данных. Возможно, вы захотите сконцентрироваться на том, чтобы сначала не писать код макроса, и переходите к нему, когда нужно будет представить повторяющийся шаблонный код. Написание хорошего макрокода означает, что вы должны подумать о том, «будет ли это генерировать соответствующий исходный код и какой побочный эффект будут у этих операторов макроса в их области разрешения»
% DO, итеративное утверждение
Синтаксис
% DO макро-переменная = start % TO stop <% BY <em>приращение >;
текстовые и макроязыковые операторы
% END;
Обязательные аргументы
макро-переменная
называет макрос-переменную или текстовое выражение, которое генерирует макрос
имя переменной. Его значение действует как индекс, который определяет
количество итераций цикла% DO. Если указана макропеременная
поскольку индекс не существует, макропроцессор создает его в
таблица локальных символов.
Вы можете изменить значение
индексная переменная во время обработки. Например, используя условный
обработка для установки значения индексной переменной после остановки
значение при выполнении определенного условия завершает обработку цикла.
StartStop
указание целых чисел или выражений макросов, которые генерируют целые числа
контролировать количество раз часть макроса между
обрабатываются итеративные операторы% DO и% END.
Первый раз
Группа% DO повторяется, макро-переменная равна start. Как обработка
продолжается, значение макропеременной изменяется на величину
увеличивать до тех пор, пока значение макропеременной выходит за пределы диапазона
целые числа, включенные в начало и конец.
приращение
указывает целое число
(кроме 0) или макрос-выражение, которое генерирует целое число для
добавляется к значению индексной переменной в каждой итерации
петля. По умолчанию приращение равно 1. Приращение оценивается до
Первая итерация цикла. Поэтому вы не можете изменить его как
цикл повторяется.