2000/10/03(火)08:28:59
北星学園大学 豊村和真
以下の説明で,実行すべきファイル名をsample.sasとし,sample.sasから呼び出して分析するデ−タをsample.dat,その結果通常作成されるファイルをsample.log,sample.lstとする。
SASは,我々が読み書きできるデータファイル(これをテキストファイルと言う)による指示に従って,その中に指定されたテキストファイルであるデータファイルからデータを受け取って,処理結果をテキストファイルとして出力する。このひとかたまりのデータをデータセットという。 ところが本当はSASはテキストファイルを直接読み書きすることができないので,自分用のデータセットを作成する。これをSASデータセットと言う。通常SASデータセットは密かに作成して仕事が終われば消去する。適切な指令をすれば,それを消去しないでそのままWin95のファイルとして保存することもできる(このファイルからデータを読めば,特に大きなデータセットである場合に非常に時間の節約になる)。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ Win95 SAS処理系 Win95 ┃ ┃ ┌─────┐ ┏━━━━━━━━━━┓ ┌─────┐ ┃ ┃ [1]│OSデータセット ├──╂───┐ ┌──╂→│OSデータセット │[3] ┃ ┃ └─────┘ ┃ ↓ │ ┃ └─────┘ ┃ ┃ 編集可(エディタ ┃ ┌────┴─┐┃ 編集可 ┃ ┃ やワープロで編集 ┃[2] │SAS データセット │┃ ┃ ┃ できる) ┃ └────┬─┘┃ ┌────────┐ ┃ ┃ ┃ 編集不可 └──╂→│永久SAS データセット │[4] ┃ ┃ ┃ ┃ └────────┘ ┃ ┃ ┗━━━━━━━━━━┛ 編集不可 ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 図 OSデータセットとSASデータセットの関係[1] sample.sas, sample.dat
DATA test; INPUT a b c; .... |
一般にSASのプログラムはDATAステップとPROCステップからなる。それぞれが複数あってもよく,さらにはどちらかがなくてもよい場合がある。 DATAステップは,「DATA」という命令から,PROCステップは,「PROC」という命令から始まる。 終了は「RUN」または次の「DATA」や「PROC」の開始直前までである。
┌──────┐ │ DATA d1; │ ┐ │ .... │ │ DATA STEP │ RUN; │ ┘ │ │─ どちらでもない [1] │ DATA d2; │ ┐ │ .... │ │ DATA STEP │ │ ┘ │ PROC CORR; │ ┐ │ .... │ │ PROC STEP │ RUN; │ ┘ │ PROC SORT ;│ ┐ PROC STEP │ .... │ ┘ │ PROC MEANS;│ ┐ PROC STEP │ .... │ ┘ └──────┘
従って特にRUNという命令は書く必要がないが,範囲を意識する意味で書いたほうがいい。 どちらかのステップ中でしか使えないステ−トメントが存在するからである。また一部には,[1]のようなどちらでもないところに書いてもエラーにならないTITLEのようなステ−トメントが存在する。
SASで処理するデータをSASデータセットとして準備(編集・作成)する。データの(外部=MS−DOSファイル からの)読込み,変更,出力などを行う。従ってデータの比較や,論理演算を必要とする場合,あるいは関数を使用する場合はDATAステップでデータを加工してから,(通常は)次のPROCステップにデータを渡すという,2段階の手続きを必要とする。。
SASデータセットに対して,プロシジャと呼ばれるサブプログラムを呼び出して統計処理などを行う。 特に重要なものを後に記述するが,詳しくはSASのマニュアル(SASプロシジャリファレンスガイド,SAS/STATユーザーズガイド,SAS/GRAPHユーザーズガイド)を参照すること。
データの入出力および変換をして,データをPROCステップに引き渡す
DATAステップにおける処理定番の統計処理を実施する
PROCステップにおける処理同じような処理を繰り返す場合に使用する