Добавить дополнительные символы после макропеременной в SAS?

У меня есть простой макрос, в котором я передаю параметр, но также хочу добавить его в макрос. Однако, когда я пытаюсь добавить дополнительный текст, он не распознает исходную макропеременную. Я попытался сначала преобразовать макропеременную в строку, добавить лишний текст, а затем убрать кавычки, но не могу найти подходящую функцию конкатенации для использования.

Вот мой макрос и то, что сейчас не работает, проблема - &del_30 в третьей строке. Компилятор пытается интерпретировать & del_30 как макрос вместо самого & del_.

%macro plot_better_same_worse(title_, del_);
proc Sgplot data=ALL_TP_NORM_TBL;
SERIES X = asofdt Y = &del_30 /
MARKERS LINEATTRS = (THICKNESS = 2);

run;
%mend plot_better_same_worse;

Я также попытался сделать это вместо этого: &&del_&30, но SAS также пытается интерпретировать &30 как макропеременную.


person Alex F    schedule 02.12.2016    source источник


Ответы (1)


Имена макропеременных начинаются с & и заканчиваются ., или первый символ, недопустимый для использования в имени макропеременной (A-Z, 0-9, _).

Таким образом, &del_.30 разрешит &del_, а затем поставит после него 30.

person Joe    schedule 02.12.2016
comment
Идеально. Спасибо. - person Alex F; 02.12.2016