#macros #sas
#макросы #sas
Вопрос:
Я застрял в написании фрагмента кода, который содержит макропеременные вида amp;amp;varamp;i . Позвольте мне привести небольшой пример:
%macro test;
%let i=1;
%let name1=Tom;
%put amp;amp;nameamp;i;
%mend;
%test;
Это выдает предупреждение: «Не разрешено ИМЯ кажущейся символьной ссылки».
Я думал, что оператор%put должен разрешить
1-й шаг: amp;name1 (amp;amp;—>amp; и amp;i—>1)
2-й шаг: Том
Похоже, что уже на первом шаге SAS выполняет поиск макропеременной amp;name , хотя перед ней стоят два амперсанда.
Это журнал SAS с включенным symbolgen .
WARNING: Apparent symbolic reference NAME not resolved.
SYMBOLGEN: Macro variable I resolves to 1
amp;amp;name1
Я что-то пропустил или есть настройки SAS, которые я должен проверить? Заранее спасибо!
Комментарии:
1. Это очень странно. Можете ли вы включить опции symbolgen, запустить пример кода и добавить журнал в свой вопрос?
2. @Quentin: я добавил соответствующую часть журнала
3. Я в замешательстве. Если вы отправляете пакетную отправку или запускаете новый сеанс SAS и отправляете, возникает ли у вас та же проблема?
4. @Quentin Спасибо за ваше предложение. Теперь я получаю правильный результат. (Странно, потому что я уже пробовал это в новом сеансе раньше, тогда безрезультатно.) Спасибо за ваше время!
Ответ №1:
Перезапуск сеанса, похоже, решил проблему для вас, как прокомментировал Квентин.
Другие варианты, которые вы можете попробовать, если та же проблема сохраняется, включают symbolgen
option и add dot для разрешения имен переменных макроса %put amp;amp;nameamp;i..;