2019年6月1日土曜日

変数の型を調べる話

変数の型を調べる方法を紹介するお話です.

proc contentsとかいろいろありますが,今回はvtype関数を取り上げます.この関数でデータセット内の変数を指定すると,その変数が文字か数値かが返ってきます.複数の変数を調べるときはcontentsプロシジャ使うほうがいいですが,こちらの関数も小回りが利いて使うときがたまにあります.

試しに動かしたときのログが以下です.データセットhogeに数値変数aと文字変数bを作ります.
変数aの型をatypeに,bの型をbtypeに取得しているのが次のデータステップです.結果もログに表示させていますが,数値変数ならNが,文字変数ならCが得られます.

そんなに変数の型が変わるのはそもそもよくないのですが,知ってるとデータステップ内で取得できるので便利です.
72 data hoge ; 73 a = 1 ; b = "TST" ; 74 run ; NOTE: データセットWORK.HOGEは1オブザベーション、2変数です。 NOTE: DATAステートメント処理(合計処理時間): 処理時間 0.00 秒 CPU時間 0.00 秒 75 76 data hoge2 ; 77 set HOGE ; 78 79 ATYPE = vtype(a) ; 80 BTYPE = vtype(b) ; 81 82 putlog "ATYPE= " ATYPE ; 83 putlog "BTYPE= " BTYPE ; 84 run ; ATYPE= N BTYPE= C NOTE: データセットWORK.HOGEから1オブザベーションを読み込みました。 NOTE: データセットWORK.HOGE2は1オブザベーション、4変数です。 NOTE: DATAステートメント処理(合計処理時間): 処理時間 0.00 秒 CPU時間 0.01 秒

0 件のコメント:

コメントを投稿