Я отлаживаю макрос, который я пишу, который обрабатывает строку как префикс или суффикс имени набора данных на основе ввода пользователем. Затем цитируемый результат будет передаваться в другой процесс вниз по течению.SAS Macro Variable Quoted Concatenation
Так что, если пользователь говорит Type = 1 и предоставляет строку «data_», результат результирующей макропеременной будет «data_%».
Я пробовал несколько разных итераций приведенного ниже кода, но не могу получить его ... любая помощь будет принята с благодарностью. Благодарю.
%let Type=1;
%let TableName=data_;
data _null_;
if &Type=1 then
call symput('qTableName',%unquote(%str(%')(cats(&TableName.,"%"))%str(%')));
else if &Type=2 then
call symput('qTableName',%unquote(%str(%')(cats("%",&TableName.))%str(%')));
run;
%put &qTableName;
Поскольку вы используете шаг данных, почему вы также используете все эти макрофункции? 'call symputx ('qtablename', cats (symget ('TableName'), '_%'))'. Также являются ли отдельные кавычки частью значения в сгенерированной макропеременной или нет? – Tom