Использовать значения переменных как значение для макропеременной

У меня есть один набор данных SAS, в котором есть столбец со значениями, которые я хочу использовать в качестве макропеременной. Скажем, набор данных SAS с одним столбцом выглядит так:

varname
34
367
399
87

Я хочу, чтобы все значения в столбце стали объединенной строкой в ​​макропеременной (подходящей для использования в операторе if с оператором in). Результат был бы эквивалентен этому:

%let var = %str('34','367','399','87');

Как бы я этого добился?


person GForce    schedule 25.04.2017    source источник


Ответы (1)


Я бы использовал PROC SQL, но есть и другие способы:

proc sql noprint;
select "'" || varname || "'"
   into :var separated by ','
   from have;
quit;

%put var: &var;

Это объединит значения переменных с ' с обеих сторон. Часть separated by поместит , между всеми значениями. :var указывает SQL сохранить результаты в макросе с именем var;

person DomPazz    schedule 25.04.2017