このページは、平成11年6月24日に開設した。
このページは、令和2年5月8日に一部変更した。
proc ステップで扱えるプロシジャには、base sas、sas/stat などの sas のそれぞ れのソフトごとにいろいろなものが用意されている。例えば base sas には、append プロシジャから upload プロシジャまで合計31のプロシジャが、sas/stat には 6.03 バージョンで 31個、6.07バージョンでは aceclus から varcomp の合計 33 個のプロシジャが用意されている。
この節では、base sas の中の基本的な2つのプロシジャである format 及び print プロシジャを説明する。
format プロシジャは、文字データに対するインフォーマット、及び数値や文字デ ータに対するフォーマットを、ユーザが定義するためのプロシジャである。この プロシジャにより定義されたフォーマットやインフォーマットは、"ユーザ定義 フォーマット"及び "ユーザ定義インフォーマット"と呼ばれる。
format プロシジャの一般形は次の通り:
PROC FORMAT オプション; VALUE 名前 [(フォーマットオプション)] 範囲='ラベル'・・・; PICTURE 名前 [(フォーマットオプション)] 範囲='編集パターン' [(オプション)]・・・; INVALUE 名前 [(インフォーマットオプション)] 範囲='値'・・・; SELECT エントリーリスト; EXCLUDE エントリーリスト; RUN; |
ここで、1つのVALUE文、PICTURE文、invalue 文は、1つのフォーマットやインフ ォーマットを定義する。これらは、1回の foramt プロシジャで、いくつでも指定 できる。これに対して、select 文と exclude 文は1回の format プロシジャでは どちらか一方のみしか指定できない。
次に、proc format のオプションには、次の4つがある:
制御データセットの情報に基づいてフォーマットやインフォーマットを作成す る時に指定する。
フォーマットカタログに保存されたフォーマットやインフォーマットの内容を プリントしたい時に指定する。
フォーマットカタログのライブラリ参照名(ホストのディレクトリ・パス名)を 指定する。
フォーマット及びインフォーマットの内容を、各ページに1フォーマット又は1 インフォーマットづつプリントする。
通常よく用いるのは、上の4つのうち3.である。
次の例は、データを外部ファイルから入力し、データの変数情報をDATA文及び format プロシジャを用いて定義し、print プロシジャにより output ウインドウに 出力するためのプログラムである:
00001 *------------------------------------------* 00002 | June 22, 1999 00003 | sas program--sasfile.exam4- 00004 | example 4 of sasprograms for making a sas permanent file. 00005 | It is a set of miller lyer illusion data by a completely rando- 00006 | mized design with four levels (CR-4) for 34 samples. In this 00007 | case it is also an unbalanced design. 00008 | 00009 | file name: a:¥sasprog¥sasfile.ex4 00010 | 00011 *-------------------------------------------*; 00012 filename cr4emp 'b:¥p70001av'; 00013 libname sasfile 'a:¥sasset'; 00014 options pagesize=60; 00015 data sasfile.cr4mill; 00016 infile cr4emp; 00017 input noss 2. +1 level 1. +1 pse 2.; 00018 label noss='sample number' 00019 level='level of angle of inward arrow' 00020 pse='point of subjective eqality in cm'; 00021 run; 00022 libname library 'a:¥sasset¥format'; 00023 proc format library=library; 00024 value lvlfmt 1='15 degree' 2='22.5 degree' 3='30 degree' 00025 4='60 degree'; 00026 run; 00027 proc print data=sasfile.cr4mill n; 00028 title 'miller lyer empirical data by CR-4 for 34 subjects'; 00029 run; |
この例で23行目から26行目までが、format プロシジャの例である。 また、直前の22行目の libname 文では、23行目の format プロシジャのオプション の1つである、library=ライブラリ参照名におけるライブラリ参照名 library と 外部ファイルの(ディレクトリ)パス名との対応を定義している。
SASファイルに、一時SASファイルと永久SASファイルが存在するのと同様に、 一時及び永久SASフォーマット/インフォーマットがある。 この例の場合のように、library=オプションを指定すると永久 sas フォーマット が作成されるのに対して、1回限りのフォーマットであれば当オプションを省略 すればよい。
このように、この例ではデータを外部ファイルから入力し、変数名やその書式を 定義し、永久 sas ファイルを作成するだけでなく、format プロシジャにより、定 性変数のカテゴリー情報をも永久 sas フォーマットに作成していることがわかる。
最後の print プロシジャは、sas の出力結果を output ウインドウに出力するための ものである。
一般形は次の通り:
proc print オプション; var 文; id 文; by 文; pageby 文; sum 文; sumby by 文; run; |
また、オプションには、次のものがある。
data=sas/ds 名、double | d、label、n、noobs、round、split='スプリット文字'、 uniform
これらの詳細については、「sas プロシジャリファレンスガイド Release 6.03 edition」の276-281頁を参照のこと。
既述のSASプログラム例2では、27行目から29行目までが、print プロシジャの例 である。ここで title 文 は、print プロシジャには含まれないが、出力結果にタイ トルを付けるために使われている。