SAS에서 데이터 단계를 벗어나 매크로 변수의 문자를 공백으로 대체하는 가장 좋은 방법은 무엇입니까?SAS에서 데이터 단계 외부에서 매크로 변수의 문자를 공백으로 대체하는 가장 좋은 방법은 무엇입니까?
TRANSLATE
은 사용하기에 좋은 기능입니다. 그러나 %SYSFUNC
을이 함수와 함께 사용하면 매개 변수가 따옴표로 묶이지 않습니다. 공란이 대체품으로 사용되어야 함을 어떻게 나타내십니까?
SAS에서 데이터 단계를 벗어나 매크로 변수의 문자를 공백으로 대체하는 가장 좋은 방법은 무엇입니까?SAS에서 데이터 단계 외부에서 매크로 변수의 문자를 공백으로 대체하는 가장 좋은 방법은 무엇입니까?
TRANSLATE
은 사용하기에 좋은 기능입니다. 그러나 %SYSFUNC
을이 함수와 함께 사용하면 매개 변수가 따옴표로 묶이지 않습니다. 공란이 대체품으로 사용되어야 함을 어떻게 나타내십니까?
매크로 언어로 인용 부호가 없습니다. 사용중인 유일한 따옴표 문자는 &
, %
등이며 텍스트는 매크로 "연산자"로 해석되어야 함을 나타냅니다. 공란은 위에서 언급 한 바와 같이 캐롤라이나 주 지에서 %str()
으로 표시됩니다.
% str() (괄호 사이에 공백이 있음)을 사용하여이 매개 변수의 비어 있음을 나타낼 수 있습니다. 또한 TRANSLATE와 조심해야합니다 ... 두 번째 매개 변수는 대체 char입니다. 그러나 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
당신이 사용할 수있는 펄 등록 전 대신, 같은 :
%put ***%sysfunc(prxchange(s/x/ /, -1, abxcdxxf))***;
/* on log
***ab cd f***
*/