1

SAS では、データ ステップの外で、マクロ変数の文字を空白に置き換える最良の方法は何ですか?

使い勝手が良さそうTRANSLATEな機能です。ただし、%SYSFUNCこの関数で使用する場合、パラメーターは引用符で囲まれません。代わりに空白を使用する必要があることをどのように示しますか?

4

3 に答える 3

5

%str( ) (かっこの間に空白がある) を使用して、このパラメーターの空白を示すことができます。TRANSLATE にも注意してください。

    %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
于 2009-02-06T17:20:23.813 に答える
4

マクロ言語には引用符はありません。使用されている引用符の文字は&%テキストがマクロの「演算子」として解釈される必要があることを示すなどです。%str( )空白は、Carolinaの投稿で上記のように表されます。

于 2009-02-11T09:29:48.260 に答える
3

代わりに、次のようにperlregexを使用できます。

%put ***%sysfunc(prxchange(s/x/ /, -1, abxcdxxf))***;
/* on log
***ab cd  f***
*/
于 2009-02-22T04:39:50.477 に答える