SAS入門1

Last-modified: 2008-04-08 (火) 17:00:32

起動・終了

スタートメニューから,SASを選ぶか,SASのアイコンをダブルクリックすることで,SASが起動します.
起動すると現れる主要な3つのウインドウ,エディタウインドウ,ログウインドウ,アウトプットウインドウを使って,作業を進めます.
エディタウインドウで,処理したい内容をプログラムとして書き,ツールバーの実行ボタン(走る人アイコン)で,プログラムを実行すると,
実行状況がログウインドウに表示され,出力結果がアウトプットウインドウに書き出されます.
終了する場合は,ファイルメニューから終了を選びます.
終了する前に,残しておきたいプログラムや,データをセーブすることを忘れないように. (OO;

SASの特徴

SAS言語は,非常に古いコンピュータ言語のひとつですが,
FORTRAN,COBOL,Cといった第3世代言語(高級言語)と違い,
第4世代言語(4GL)または簡易言語と呼ばれる言語の1つです.
1つの命令文の受け持つ処理が,高級言語よりたくさんの作業をこなしてくれるので,,
プログラミングする人にとって複雑な内容を簡単に書くことができるというメリットがあります.
SASが得意とするデータ処理は,統計解析やデータマイニングといった,データ分析処理です.
データを管理したり,データシステム構築することもできますが,大量データに対する
データ分析機能は,SASがナンバーワンといってもよいでしょう.
製薬,金融,マーケティング,通信,製造といった分野で広く使われています.

hello world -ともかく,動かしてみましょう.

以下のSASプログラムをドラッグし,実行ボタンで実行させてみてください.

data hello;
 message="Hello, World";
run;
proc print;
run;

ログに,実行時間と処理概況が表示され,

1
2    options nocenter;
3
4    data hello;
5      message="Hello, World";
6    run;
NOTE: データセット WORK.HELLO は 1 オブザベーション、 1 変数です。
NOTE: DATA ステートメント 処理 (合計処理時間):
      処理時間            0.21 秒
      CPU 時間            0.03 秒
7
8    proc print;
9    run;
NOTE: データセット WORK.HELLO から 1 オブザベーションを読み込みました。
NOTE: PROCEDURE PRINT 処理 (合計処理時間):
      処理時間            0.20 秒
      CPU 時間            0.03 秒

アウトプットに,Hello,Worldが出力されたはずです.

OBS      message
1     Hello, World

データステップとプロックステップ

最初の「options ..」は,考えないとして,SASプログラムは,このように
Dataで始まるデータステップと,Procで始まるプロックステップ
組み合わせで作られます.
データステップは,処理するデータを演算子や関数などを使って自由に加工する
処理を記述し,プロックステップは,プロックの後ろに書かれるプロシージャの
あらかじめ用意された処理ーprintプロシージャであれば,データの内容の印刷ーを
実行します.
どちらのステップも,「;」で区切られたステートメントー文ともいうーから構成されています.

options nocenter;          /*オプション文*/
data hello;                /*データ文*/
  message="Hello, World";  /*代入文*/
run;                       /*ラン文*/
proc print;                /*プロックプリント文*/
run;                       /*ラン文*/

文は,基本的にデータステップかプロックステップに属しますが,オプション文?のように,
どちらのステップにも属しないものも一部あります.

ラン文は,ステップの終了を意味し,ステップ全体の実行開始を指示しますが,
省略した場合は,データ文やプロック文が現れると,その前にラン文があったものと
解釈され,直前のステップの実行を開始させます.

ヘルプ(V9.1.3)

  • データステップに関するヘルプ

    ヘルプメニュ→SASヘルプとドキュメント>目次>SASプロダクト>BaseSAS>SAS言語レファレンス>SAS言語レファレンス

  • プロックステップに関するヘルプ

    ヘルプメニュ→SASヘルプとドキュメント>目次>SASプロダクト>BaseSAS>SASプロシージャ>プロシージャ

  • 推測統計用プロシージャのプロックステップに関して

    ヘルプメニュ→SASヘルプとドキュメント>目次>SASプロダクト>SAS/STAT>SAS/STAT使用の手引き

データセット

SASが扱うデータをSASデータセットといいます.
以後,誤解がなければ,SASデータセットをデータセット,データなどと呼ぶ場合があります.
SASは,外部からXLS,CSVなどさまざまなデータ形式からデータを読み込みんだり,
書き出したりできますが,SASの内部では,それをデータセットと呼ばれる
表形式のデータに変換し,必要な処理を行います.
hello worldの例では,データステップで,helloという名前のデータセットをつくり,
printプロシージャで,その中身を印刷しています.
別な例を示します.

data sample;
 input ID name $ sex $;
cards;
001 fujita M
002 suzuki F
003 takahashi  M
004 tanaka M
;
proc print data=sample;  /*data=を省略した場合は,最後のデータセットが処理対象となる*/
run;

アウトプット画面には以下が表示されます

OBS    ID      name      sex
1      1    fujita     M
2      2    suzuki     F
3      3    takahashi      M
4      4    tanaka     M

データステップで,カード文以降に書かれた4行のデータ行から,
4人分の社員データ(社員ID,名前,性別)を読み,
sampleというデータセットを作っています.
データセットは,M行XN列の表の形をしており,
行をオブザベーション(オブズ,OBS,レコード),列を変数(variable)といいます.
このデータセットsampleは,
ID,Name,Sexの3変数をもつ4オブザベーションのデータセットということです.

永久データセット

先のデータセットsampleは,このSASを終了させると,自動的に消去されます.
SASを終了後も,データを残しておいて,次のSAS起動時に続けて使いたい場合は,
SASを永久データセットとして作成しておきます.

libname mydata "C:\";
data mydata.sample;
 input ID name $ sex $;
cards;
001 fujita M
002 suzuki F
003 takahashi  M
004 tanaka M
;

まず,永久データセットをセーブしておくフォルダを決め,
それをSASに知らせます.
ここでは,libname文を使って,C:\ が,永久データセットを入れておく場所
(それをライブラリといいます)で,そのSASでの呼び名をmydataとしています.
データステップで,ライブラリ名.データセット名(mydata.sample)という名前で
データセットをつくると,それで永久データセットとなります.
次にSASを起動したとき,同じ形式で呼び出し処理を再開できます.
今,C:\に何が入っているか確認しておきましょう.
sample.sas7bdatというファイルがあるはずです.これが,データセットmydata.sampleを
ウインドウズからみた時の姿です.
mydataというのは,あくまで,C:\のSAS上での一時的な呼び名であって,
ウインドウズは,関知していないことに留意してください.

質問・意見

以下は、SASのエディタWINDOWでコピペして使えます


/*
目的
このドキュメント兼SASプログラムは,
なにか1つのコンピュータ言語の簡単なプログラミングで
データの処理を行った経験をもつ人を対象に,
SASで何ができるかが,理解できるように書かれています.
なお,前提としているSASプロダクトは,
BaseSASとSAS/STATの2つです.おもに,BaseSASの
ごく基本的な事項を扱い,この2つのプロダクトを網羅的に
解説するわけではありません.

このドキュメントとは別に,SASのヘルプメニューにSAS入門の資料があります.
ヘルプメニュー>SAS入門ガイド
このドキュメントでは,もう少し短期間にSASの基本部分を俯瞰して,
マニュアルやヘルプを参照したり,上級者にアドバイスを
もらいながら,簡単なデータ分析を行えるレベルになることが目標です.
*/


/*
起動・終了
スタートメニューから,SASを選ぶか,SASのアイコンをダブルクリック
することで,SASが起動します.
起動すると現れる主要な3つのウインドウ,エディタウインドウ,ログウインドウ,
アウトプットウインドウを使って,作業を進めます.
エディタウインドウで,処理したい内容をプログラムとして書き,ツールバーの実行ボタン
(走る人アイコン)で,プログラムを実行すると,実行状況がログウインドウに表示され,
出力結果がアウトプットウインドウに書き出されます.
終了する場合は,ファイルメニューから終了を選びます.
終了する前に,残しておきたいプログラムや,データをセーブすることを忘れないように.
*/


/*
SASの特徴
SAS言語は,非常に古いコンピュータ言語のひとつですが,
FORTRAN,COBOL,Cといった第3世代言語(高級言語)と違い,
第4世代言語または簡易言語と呼ばれる言語の1つです.
1つの命令文の受け持つ処理が,高級言語よりたくさんの作業をこなしてくれるので,,
プログラミングする人にとって複雑な内容を簡単に書くことができるというメリットがあります.
SASが得意とするデータ処理は,統計解析やデータマイニングといった,データ分析処理です.
データを管理したり,データシステム構築することもできますが,大量データに対する
データ分析機能は,SASがナンバーワンといってもよいでしょう.
製薬,金融,マーケティング,通信,製造といった分野で広く使われています.
*/


/*
hello world
ともかく,動かしてみましょう.
以下のSASプログラムをドラッグし,実行ボタンで実行させてみてください.
*/

options nocenter;

data hello;
  message="Hello, World";
run;

proc print;
run;


/*
ログに,実行時間と処理概況が表示され,
1
2    options nocenter;
3
4    data hello;
5      message="Hello, World";
6    run;
NOTE: データセット WORK.HELLO は 1 オブザベーション、 1 変数です。
NOTE: DATA ステートメント 処理 (合計処理時間):
       処理時間            0.21 秒
       CPU 時間            0.03 秒
7
8    proc print;
9    run;
NOTE: データセット WORK.HELLO から 1 オブザベーションを読み込みました。
NOTE: PROCEDURE PRINT 処理 (合計処理時間):
       処理時間            0.20 秒
       CPU 時間            0.03 秒

アウトプットに,Hello,Worldが出力されたはずです.
OBS      message
 1     Hello, World


/*
データステップとプロックステップ
最初の「options ..」は,考えないとして,SASプログラムは,このように
Dataで始まるデータステップと,Procで始まるプロックステップの
組み合わせで作られます.
データステップは,処理するデータを演算子や関数などを使って自由に加工する
処理を記述し,プロックステップは,プロックの後ろに書かれるプロシージャの
あらかじめ用意された処理ーprintプロシージャであれば,データの内容の印刷ーを
実行します.
どちらのステップも,「;」で区切られたステートメントー文ともいうーから構成されています.

options nocenter; オプション文

data hello; データ文
  message="Hello, World"; 代入文
run; ラン文

proc print; プロックプリント文
run; ラン文

文は,基本的にデータステップかプロックステップに属しますが,オプション文のように,
どちらのステップにも属しないものも一部あります.

ラン文は,ステップの終了を意味し,ステップ全体の実行開始を指示しますが,
省略した場合は,データ文やプロック文が現れると,その前にラン文があったものと
解釈され,直前のステップの実行を開始させます.
*/


/*
ヘルプ(V9.1.3)
データステップに関するヘルプは,
ヘルプメニュー>SASヘルプとドキュメント>目次>SASプロダクト>BaseSAS
>SAS言語レファレンス>SAS言語レファレンス
プロックステップに関するヘルプは,
ヘルプメニュー>SASヘルプとドキュメント>目次>SASプロダクト>BaseSAS
>SASプロシージャ>プロシージャ
また,推測統計用プロシージャのプロックステップに関しては,
ヘルプメニュー>SASヘルプとドキュメント>目次>SASプロダクト>SAS/STAT
>SAS/STAT使用の手引き
*/


/*
データセット
SASが扱うデータをSASデータセットといいます.
以後,誤解がなければ,SASデータセットをデータセット,データなどと呼ぶ場合があります.
SASは,外部からXLS,CSVなどさまざまなデータ形式からデータを読み込みんだり,
書き出したりできますが,SASの内部では,それをデータセットと呼ばれる
表形式のデータに変換し,必要な処理を行います.
hello worldの例では,データステップで,helloという名前のデータセットをつくり,
printプロシージャで,その中身を印刷しています.
別な例を示します.
*/


data sample;
  input ID name $ sex $;
cards;
001 fujita M
002 suzuki F
003 takahashi  M
004 tanaka M
;

proc print data=sample;  /*data=を省略した場合は,最後のデータセットが処理対象となる*/
run;

/*
OBS    ID      name      sex

 1      1    fujita     M
 2      2    suzuki     F
 3      3    takahashi      M
 4      4    tanaka     M
*/

/*
データステップで,カード文以降に書かれた4行のデータ行から,
4人分の社員データ(社員ID,名前,性別)を読み,
sampleというデータセットを作っています.
データセットは,M行XN列の表の形をしており,
行をオブザベーション(オブズ,OBS,レコード),列を変数(variable)といいます.
このデータセットsampleは,
ID,Name,Sexの3変数をもつ4オブザベーションのデータセットということです.
*/


/*
永久データセット
先のデータセットsampleは,このSASを終了させると,自動的に消去されます.
SASを終了後も,データを残しておいて,次のSAS起動時に続けて使いたい場合は,
SASを永久データセットとして作成しておきます.
*/

libname mydata "C:\";

data mydata.sample;
  input ID name $ sex $;
cards;
001 fujita M
002 suzuki F
003 takahashi  M
004 tanaka M
;

/*
まず,永久データセットをセーブしておくフォルダを決め,
それをSASに知らせます.
ここでは,libname文を使って,C:\ が,永久データセットを入れておく場所
(それをライブラリといいます)で,そのSASでの呼び名をmydataとしています.
データステップで,ライブラリ名.データセット名(mydata.sample)という名前で
データセットをつくると,それで永久データセットとなります.
次にSASを起動したとき,同じ形式で呼び出し処理を再開できます.
今,C:\に何が入っているか確認しておきましょう.
sample.sas7bdatというファイルがあるはずです.これが,データセットmydata.sampleを
ウインドウズからみた時の姿です.
mydataというのは,あくまで,C:\のSAS上での一時的な呼び名であって,
ウインドウズは,関知していないことに留意してください.
*/



*****************************************************************
END
*****************************************************************;