2016年3月4日金曜日

【%DATATYP】 データステップ外でマクロ変数値のデータタイプを判定する




構文

  %DATATYP( 判定したい値 )


  • 値が半角数値なら 「NUMERIC」、文字なら 「CHAR」 が返される
  • 「+1」「-1」「1e10」「1d10」みたいな表現も「NUMERIC」と判定される
  • 全角等のマルチバイト文字に対応してるかマニュアルに記載がなかったので、マルチバイト文字は入れないほうが無難かも



  %let VAR1 = 10.5;
  %put %datatyp(&VAR1);

ログ
NUMERIC



色々な値で試してみました。

%put %DATATYP(100);    /* → NUMERIC  */
%put %DATATYP(1.0);     /* → NUMERIC  */
%put %DATATYP(+1.0);   /* → NUMERIC  */
%put %DATATYP(-1.0);   /* → NUMERIC  */
%put %DATATYP(1e-1);  /* → NUMERIC  */
%put %DATATYP(1d-1);  /* → NUMERIC  */
%put %DATATYP(1+);     /* → CHAR         */
%put %DATATYP(abc);   /* → CHAR         */
%put %DATATYP();         /* → CHAR         */

0 件のコメント:

コメントを投稿