2019年6月6日木曜日

sas製品版でよく使うショートカット

先日のsas勉強会の中でおすすめのショートカットの話がありました.当日は時間がなくてスルーしてしまったのですが,ほかの人がどんなショートカットを使っているかはやはり気になりますね.
製品版のsasを使う上で私が使うことのあるショートカットを紹介します.ほかにもこんなのあるよって方は教えてほしいですね...

F3        プログラムの実行
F5        拡張エディタ表示
F6        ログ画面表示
ctrl+F4 カーソルの当たっているウィンドウを閉じる
ctrl+E  カーソルの当たっている画面をクリア(もっぱらログ削除用)

私は SASの各ウィンドウを最大化して使っているので,しょっちゅうログとエディタを行き来します.実行するとログ画面が一番前に来る設定にしているのですが,エディタに戻るときはF5で戻ります.
一時はログを縦長にして右に,エディタはできるだけ大きくして左にとかやってましたが,最近はもっぱら全部最大化してます.なのでログ画面と拡張エディタを同時に並べてみるとかはほとんどないですね...

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 秒