SAS에서 데이터 단계 외부에서 매크로 변수의 문자를 공백으로 바꾸는 가장 좋은 방법은 무엇입니까?
문제
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***
*/
제휴하지 않습니다 StackOverflow