「その1」 のおまけ。
「%SYSFUNCで、PUT関数とかINPUT関数を使ったらエラーでたんだけど。。」という質問をもらう事があります。
proc format;
value FMT_ 1="aa" 2="bb" ; run; %put %sysfunc( put(2,FMT_) ); ERROR: %SYSFUNC または %QSYSFUNC マクロ関数で参照されている PUT 関数がありません。 |
確かにエラーが出ます。
実は%SYSFUNCでは、PUT / INPUT関数がサポートされていません。
代わりに、PUTN / PUTC / INPUTN / INPUTC関数 がサポートされてるので、これらで代用できます。
%put %sysfunc( putn(2,FMT_) );
bb |
PUTN関数などは、SASYAMAさんが解説をされています。
データステップでは 「putn(2, "FMT_")」 というように書きますが、%SYSFUNCでは文字列を引用符(クオーテーション)で囲む必要がないので、「putn(2, FMT_)」 と書きます(前回の記事参照)
%SYSFUNC関数の小技
0 件のコメント:
コメントを投稿