는 I 알파 전용 단어 각각은 하나 개 이상의 공간에 의해 분리 된 임의의 수 포함될 수 매크로 varaiable의 X가 인사 : I는 다른 매크로 변수를 생성 할구분 단어
%let x = A B CD ;
그런 인쇄 할 때 (작은 따옴표가 큰 따옴표로 교환 할 수있다)이 결과를 줄 것이다 :
'A','B','CD'
그것은 즉 ... in()
문에 사용합니다.
data want;
set have;
where my_field in ( /* DO SOMETHING TO &X HERE TO GIVE DESIRED OUTPUT */ ) ;
run;
나는 (바람직하게는 한 줄)을 찾고 있어요 순수 매크로 코드 솔루션 : 내가 이렇게 보이는 코드를 작성하는 것입니다. 이 메모를 생성하지 않습니다 하나 :
NOTE 49-169: The meaning of an identifier after a quoted string might change in a
future SAS release. Inserting white space between a quoted string and the succeeding
identifier is recommended.
지금까지 나는이 있습니다
%let y = %str(%')%sysfunc(tranwrd( %sysfunc(compbl(&x)) ,%str(),%str(%',%')))%str(%');
%put &y;
하지만 그 망할 노트를 제거 할 수 없습니다.
왜 당신이 이렇게됩니다 매크로 언어? 이것은 나에게 데이터 조작처럼 들린다. – Joe
귀하의 질문에 답변 할 수 있도록 답변이 업데이트되었습니다. '& x'의 값은 SAS에 매개 변수로 전달됩니다. –
if 조건에 대해'in' 대신'indexw'를 사용할 수없고 따옴표를 많이 삽입하는 것에 대해 걱정할 필요없이 같은 결과를 얻을 수 있습니까? 아래 내 대답을 참조하십시오. – user667489