SASデータセットを開いて、ぱっと条件かけて抽出したい時に右クリック→[WHERE]で
WHERE式ビルダを立ち上げて確認のための一時的な抽出をしたりすることがあると思います。 特に<定数値の参照>でその変数のバリエーションを全てリストしてくれたりして
とても便利ですが、以下の点で個人的に不満でした。
・抽出結果について変数選択ができないため全変数がでてきて、横に長いデータセットを見る場合はスクロールが面倒。行をハイライトしていても、ちょっとずれて、どのSUBJIDかわからなくなることがある
・抽出結果をそのままデータセットにできない。WHERE式で確認した後、データセットとして欲しくなっても結局コード書いて作らなければいけない
・一つのデータセットに対してしか見れない。複数のデータセットを繋いで抽出したい場合にコードを書いて予めマージしたデータセットを作らなければならない。
面倒がらずにコード書いてちゃんと導出しなさいという話で終わりですが、便利機能としてSASクエリウインドウを紹介します。正式名はSQLクエリウインドウだったんですね、最近知りました。
SASの「ツール」→「クエリ」をクリックするか
コマンドウインドウという部分に「query」と打ってEnterします。
クエリウインドウが立ち上がるので
抽出元のデータセットを好きなだけ選択します。テーブルソースというところは
参照するライブラリを選択する箇所になります。
OKを押すと、次は出力変数の選択画面になります
ここで、もし複数データセットを選択していた場合、
先に右クリック→「テーブルの結合」で繋ぎ方と繋ぐ変数を設定しておかないと
勝手に直積結合しやがるので注意してください。
あとは、出力する変数を選択して、抽出条件を追加したいなら右クリックメニューから
whereやhavingを設定したり、変数選択画面で、変数名をリネームしたりラベルつけたり、
またSQLでできることはほぼ何でも設定できるので、とりあえず色々いじって試してみてください。
設定が完了後、右クリック→「クエリの実行」をすると結果がアウトプットウインドウに出力されます。
「クエリの表示」をクリックすると、設定した内容がSQL文に変換されて表示されます。
しかも、その画面の右には
こういうボタンがついていて、例えばテーブルの作成を選ぶと
現在の抽出結果でデータセットをこさえてくれます。
どうですか?ちょっとSQLかじってないとわかりにくいかもしれませんが、
凄くないですか?
まあ、GUIで楽にできるっていっても、結構手数かかってるやん、SAS書きならコードを早く書けるように練習しとけって感じもしますが、けど実際
使いなれている人がこれで、どんどんデータを確認しているところを横で見ていたことが
あるんですが、ボタンの配置を多分全部覚えていて、凄まじいスピードで、抽出を繰り返して、必要なデータをデータセット化してて、これはどれだけタイピング早くても、コードじゃおっつかないなと思ったことあります。
ちなみに日本語版SASオンラインヘルプに
SAS 9.3 SQLクエリウィンドウ ユーザーガイドが公開されていて、この機能だけについて100ページぐらい詳細な使い方が書いてあるので、極めんとするかたは読んで、面白いことがあれば教えてください。僕も、読もうと思ったのですが、途中で面倒になってやめてしまいました。