2013年12月6日金曜日

INPUT関数の小技


「INPUT関数」で文字を数値に変換する時、
"100未満"や"2013/10/初旬"とかだと、ログに無効なデータがある旨のメッセージが表示され欠損値となる。

サンプルプログラム

data DT1;
   length V1 $20.;

   V1="2013/10/初旬";
   V2=input(V1,yymmdd10.) ;
run;


ログ






そこで以下のように「??」を入れると、「問題ない」という扱いになりログから上記メッセージを消せる。
「V2」の値は上記の結果と変わらない。

   V2=input(V1,?? yymmdd10.)  ;

ログ









本来、おかしなデータがないか把握する上で、
無効なデータがある旨のログメッセージは絶対出しておくべき。

しかし、
ロジカルチェックなどで「生年月日に日付として不正な記載がある」
のようなチェックをかける場合、不正な記載そのものを抽出するので、わざわざそこをログに注意されなくてもいいと思う時は、「??」を入れたほうが、後のログチェックもスムーズにいく。

0 件のコメント:

コメントを投稿