SASプログラミングガイド Ver 1.1


2000/10/03(火)08:28:59
北星学園大学 豊村和真

SASの概要

 以下の説明で,実行すべきファイル名をsample.sasとし,sample.sasから呼び出して分析するデ−タをsample.dat,その結果通常作成されるファイルをsample.log,sample.lstとする。

OSデータセットとSASデータセットの関係

 SASは,我々が読み書きできるデータファイル(これをテキストファイルと言う)による指示に従って,その中に指定されたテキストファイルであるデータファイルからデータを受け取って,処理結果をテキストファイルとして出力する。このひとかたまりのデータをデータセットという。 ところが本当はSASはテキストファイルを直接読み書きすることができないので,自分用のデータセットを作成する。これをSASデータセットと言う。通常SASデータセットは密かに作成して仕事が終われば消去する。適切な指令をすれば,それを消去しないでそのままWin95のファイルとして保存することもできる(このファイルからデータを読めば,特に大きなデータセットである場合に非常に時間の節約になる)。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                                                                        ┃
┃      Win95          SAS処理系          Win95              ┃
┃    ┌─────┐    ┏━━━━━━━━━━┓  ┌─────┐          ┃
┃ [1]│OSデータセット ├──╂───┐      ┌──╂→│OSデータセット │[3]       ┃
┃    └─────┘    ┃      ↓      │    ┃  └─────┘          ┃
┃    編集可(エディタ  ┃    ┌────┴─┐┃    編集可                ┃
┃    やワープロで編集  ┃[2] │SAS データセット │┃                          ┃
┃    できる)          ┃    └────┬─┘┃  ┌────────┐    ┃
┃                      ┃     編集不可 └──╂→│永久SAS データセット │[4] ┃
┃                      ┃                    ┃  └────────┘    ┃
┃                      ┗━━━━━━━━━━┛    編集不可              ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
 
  図 OSデータセットとSASデータセットの関係
[1] sample.sas, sample.dat
[2] sample.sasの中に書かれているDATAステップの名前 (たとえばsample.sasが,以下のように書かれていた場合は「test」)
DATA test;
INPUT a b c;
....
[3] sample.log, sample.lst
[4] 指示しなければ作成されない。指示の仕方は後述する。

DATAステップとPROCステップについて

一般に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のようなステ−トメントが存在する。

DATAステップ

SASで処理するデータをSASデータセットとして準備(編集・作成)する。データの(外部=MS−DOSファイル からの)読込み,変更,出力などを行う。従ってデータの比較や,論理演算を必要とする場合,あるいは関数を使用する場合はDATAステップでデータを加工してから,(通常は)次のPROCステップにデータを渡すという,2段階の手続きを必要とする。。

PROCステップ

SASデータセットに対して,プロシジャと呼ばれるサブプログラムを呼び出して統計処理などを行う。 特に重要なものを後に記述するが,詳しくはSASのマニュアル(SASプロシジャリファレンスガイド,SAS/STATユーザーズガイド,SAS/GRAPHユーザーズガイド)を参照すること。

プロシジャ一覧

プロシジャには以下のようなものがある。全て覚える必要はないが,アンダーラインの引かれたプロシジャは多用される

DATAステップにおける処理

データの入出力および変換をして,データをPROCステップに引き渡す

DATAステップにおける処理

PROCステップにおける処理

定番の統計処理を実施する

PROCステップにおける処理

マクロ処理

SASマクロ命令の使い方

同じような処理を繰り返す場合に使用する

資料

演算子

演算子

関数

関数

関連ページ

SASプログラミングの定石集 SASのプログラミングをする際の基本的なテクニック集

問題集 SASの問題集。実践的な事例もある

戻る  進む  ホームページへ
mailto: toyomura@hokusei.ac.jp
home page: http://www.ipc.hokusei.ac.jp/~z00105/index.html