SCAN
여기서 가장 도움이되는 기능입니다. 확률은 전체 접근 방식이 개선 될 수 있다는 것입니다.
%let myGrp = ('ctry', 'age');
data yourdata;
do _t = 1 to countc("&mygrp",",")+1;
groups = scan("&myGrp",_t,"'(,) ");
output;
end;
run;
SCAN
원하는 수의 구분 기호를 사용하며 여기에서 원하지 않는 문자를 제거하는 데 유용 할 수 있습니다. 장기적으로 %let mygrp=ctry,age;
는 따옴표도 도움이되지 않습니다.
이것은 실제적인 예입니다 (스페인어 이름은 죄송합니다) :
%let sListaDeValoresAutorizados= ('ctry', 'age');
%LET LISTA_VALORES = %UNQUOTE(%sysfunc(compress("&sListaDeValoresAutorizados","(')")));
DATA yourdata;
%DO _t = 1 %TO %sysfunc(countw("&LISTA_VALORES",','));
GROUPS = strip(scan("&LISTA_VALORES",&_t,","));
OUTPUT;
%END;
RUN;
출처
https://stackoverflow.com/questions/22050096