putlogをご存知でしょうか.logに任意の文字列を出力するステートメントです.
これを使ってデータの中のイレギュラーデータを(ある程度)見つけようと言う試みです.
ためしに下のデータセットがあるとして,変数aには欠測は本来入らないと仮定してください.
その変数aに欠測が入ってるかどうかと,欠測の時のほかの変数の値をlogに出力するのが以下のプログラムです.
私は最近知っていたく感動したのですが,普通にご存知の方が多いのでしょうかね...?
putlogで指定した変数の値が出力できるので,それを利用した形になります.
自分で指定した条件に該当するレコードがなかった場合,logには何も出てきません.
"E" "RROR"とputlogに指定しているのは,ログには"ERROR"と出したいが,
ログに出す条件のレコードが何もないときはERRORとログに残したくないためです.
涙ぐましいですね.この小細工が.
/*---------- ここからプログラム ----------*/
data hoge ;
a = 1 ; b = 1 ; c = 6 ; output ;
a = 1 ; b = 2 ; c = 5 ; output ;
a = . ; b = 3 ; c = 4 ; output ;
a = 1 ; b = 4 ; c = 3 ; output ;
a = . ; b = 5 ; c = 2 ; output ;
a = 1 ; b = 6 ; c = 1 ; output ;
run ;
data _null_ ;
set hoge ;
/* -- 想定の値以外(今回は欠測)があるときにlogに出力 -- */
if a = . then do ;
putlog "E" "RROR_A" ;
putlog b = c = ;
end ;
run ;
0 件のコメント:
コメントを投稿