Является ли это частью оператора infile или вы действительно хотите создать макропеременные, содержащие эти значения? Если это часть оператора infile, вам не нужно ничего делать, если вы правильно установили разделитель.
infile foo DLM=',' ;
И да, вы действительно можете использовать функцию сжатия для удаления определенных символов из символьной строки, либо в шаге данных, либо как часть вызова макроса.
COMPRESS(source<,characters-to-remove>)
Пример данных:
data temp;
input a $;
datalines;
"boo"
"123"
"abc"
;
run;
Устранить проблему на шаге данных (вместо создания макропеременной):
data temp2; set temp;
a=compress(a,'"');
run;
Решить проблему при генерации макропеременной:
data _null_; set temp;
call symput('MyMacroVariable',compress(a,'"'));
run;
%put &MyMacroVariable.;
Вам придется пройтись по наблюдениям, чтобы увидеть сжатые значения переменной для каждой записи, если вы используете последний код. :)