SAS에서 데이터 단계 외부에서 매크로 변수의 문자를 공백으로 바꾸는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/521207

  •  22-08-2019
  •  | 
  •  

문제

SAS에서 데이터 단계 외부에서 매크로 변수의 문자를 공백으로 바꾸는 가장 좋은 방법은 무엇입니까?

그것은 것 같습니다 TRANSLATE 사용하기에 좋은 기능이 될 것입니다. 그러나 사용할 때 %SYSFUNC 이 기능을 사용하면 매개 변수가 따옴표로 둘러싸여 있지 않습니다. 블랭크를 교체로 사용해야하는 방법은 무엇입니까?

도움이 되었습니까?

해결책

매크로 언어에는 인용문이 없습니다. 사용중인 유일한 인용문은 & , % 텍스트가 매크로 "연산자"로 해석되어야 함을 나타냅니다. 공백은 다음으로 표시됩니다 %str( ) 위에 표시된대로 Carolina의 게시물에 표시됩니다.

다른 팁

비 또한 번역에주의하십시오 ... 두 번째 매개 변수는 교체 숯입니다 ... 그러나 Tranwrd에서는 반전됩니다.

    %macro test ;
     %let original= translate_this_var ;
     %let replaceWithThis= %str( ) ;
     %let findThis= _ ;
     %let translated= %sysfunc(translate(&original, &replaceWithThis, &findThis)) ;
     %put Original: &original ***** TRANSLATEd: &translated ;
    %mend ;
    %test;

    %macro test2 ;
     %let original= translate_this_var ;
     %let replaceWithThis= %str( ) ;
     %let findThis= _ ;
     %let tranwrded= %sysfunc(tranwrd(&original, &findThis, &replaceWithThis)) ;
     %put Original: &original ***** TRANWRDed: &tranwrded ;
    %mend ;
    %test2

대신 Perl Reg ex를 사용할 수 있습니다.

%put ***%sysfunc(prxchange(s/x/ /, -1, abxcdxxf))***;
/* on log
***ab cd  f***
*/
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top