SASステートメントSASステートメントはSASに処理させるための命令文で、多様な処理に対応した多数のステートメントが用意されています。DATAステップとPROCステップ個々にSASステートメントを記述しただけでは、SASは処理を実行してくれない。SASのプログラムは、基本的に「DATAステップ」「PROCステップ」という2つの要素で構成する必要があり、プログラムの実行はこのステップ単位でおこなわれる。それぞれのステップの実態は、複数のSASステートメントをまとめた固まりに過ぎない。1DATAステップDATAステップは、主にSASデータセットの作成・編集を行うためのステップである。・ローデータ(外部ファイル)を読み込み、新しいSASデータセットを作成する・既存のSASデータセットを読み込み、サブセット化(データを絞ること)、新しいデータ値の作成、データ値の変換などをして新しいSASデータセットを作成する・複数のSASデータセットを結合(マージ)して新しいSASデータセットを作成する・外部ファイルにデータ値を出力する(ファイルの書き出し)2PROCステップPROCステップは、SASデータセットに対してプロシジャを使った特定処理をおこなうためのステップである。プロシジャとは、特定の処理をおこなうためにSASが提供してくれるサブプログラムのことである。PROCステップは、プログラムの書き方自体はプロシジャごとにほぼ決まっているので、プログラミングの難易度はDATAステップに比べると格段に低い。SASデータセットプロシジャを使ってデータを処理するためには、SASが扱うことのできる形式でデータを用意する必要がある。このSAS独自のデータ形式を「SASデータセット」と呼ぶ。SASデータセットの作成は基本的にはDATAステップでおこなう。プロシジャ(PROCステップ)を使ってSASデータセットを作成することもある。1ディスクリプタ部とデータ部SASデータセットは、「ディスクリプタ部」と「データ部」という2つの要素で構成されている。「データそのもの」が格納されている部分である。具体的には表計算ソフトのシートやデータベースのテーブルと同様の2次元の行列イメージ形式で、行側がレコード・列側がフィールドに対応している。SAS用語では、行(レコード)側を「オブザべーション」、列(フィールド)側を「変数」と呼ぶのが通例となっている。「SASデータセットに関する属性情報(データセット名、オブザべーション数など)」と「格納されている変数の属性情報(変数名、タイプ、長さなど)」が含まれている。※日々のプログラミング作業において、プログラマがディスクリプタ部のことを詳細に意識する必要はない。SASシステムはSASデータセットを処理する際、単にデータ値のみを読み取るだけではなく、その処理の裏側でディスクリプタに記述された各種属性情報をもとにいろいろ動いてくれている。その結果、SAS言語は、他の一般的なプログラム言語に比べて、プログラミングの負担がある程度軽減されていることは、知っておいたほうが良いだろう。2SAS変数SASデータセットの変数には、以下の2種類のタイプがある。→最大の長さは8バイト(倍精度浮動小数点)※これがデフォルト※数値変数の長さとは、桁数ではなく浮動小数点形式で使用するバイト数であることに注意。8バイトの浮動小数点で約15桁の数値が扱える。個々の変数がどちらのタイプになるのかはプログラムの記述に依存するが、作成時に明示的にタイプを示さない場合は、数値変数となるのが基本である。3SASデータセット名と変数名SASデータセット名とSAS変数名についてのネーミングルールは以下のとおり。※アルファベットの大文字・小文字は区別しない4欠損値SASデータセット内では、各オブザべーションに対して、すべての変数に対する値が必要である。欠損値も有効な値として格納される。.;output;run;name:文字変数であり、欠損値として「""(ブランク)」が格納されている。:数値変数であり、欠損値として「.(ピリオド)」が格納されている。DATAステップでは、新たに変数を作成したり、数値を計算してその結果を変数に代入したりすることができる。通常、DATAステッププログラムは、入力データを読み込んで新しいSASデータセットを作成するという構造で記述される。SASのプログラミング処理によって作成されるSASデータセットは、Windows上では、ひとつのファイルとしてハードディスク上に生成されている。