IF-THENステートメントを使った条件別処理ある条件が成り立つオブザべーションに絞って特定のステートメントを実行したい場合や、条件別に適用するステートメントを変更したい場合などは、IF-THENステートメントを使用する。ステートメントN;・条件式1が成立する場合、ステートメント1を実行する。・条件式1が成立せず、条件式2が成立する場合、ステートメント2を実行する。・いずれの条件式も成立しない場合、ステートメントNを実行する。条件式は、比較演算子および論理演算子を組み合わせて作成する。論理演算子は、複数の比較演算を組み合わせるときに使用する。1ちなみに、優先順位2に該当するのは、算術演算子である。IF-THENステートメントで複数のステートメントを実行IF-THEN-ELSEステートメントで、条件分岐先として複数のステートメントを指定したい場合は、DO-ENDステートメントを併用すれば良い。DO;ステートメントN_1;ステートメントN_2;・・・;END;【事前準備】まず、以下のように、サンプルSASデータセットlistを用意する。missover;inputfirst_name:$20.last_name:$20.sex:8.age:8.;datalines;Kaori,Ito,2,22Hideki,Tanaka,1,35Taro,Yamada,1,30Hiroki,Sato,1,25Mizue,Ishii,2,54Yuko,Koyama,2,30Ichiro,Suzuki,1,.Shinji,Suda,1,27Reiko,Yamauchi,2,42Mituru,Adachi,3,45;run;【例】そして、以下のように、SASデータセットlistに対し、条件分岐を掛け、list_categoryを作成する。20」に当てはまることになる。SELECT-WHENステートメントIF-THEN-ELSEステートメントと同様に、条件分岐を行うために使用する。構文的に分岐処理の構造が分かりやすく記述できるので、条件分岐の数が多い場合は、IF-THEN-ELSEよりも、こちらを使う方が可読性が高まることがある。先ほどの、list_categoryを作成したIFステートメントを、SELECTステートメントで書き換えてみる。sex_label="不明";end;run;【IF-THEN-ELSEステートメントとの違い】1指定した条件のいずれにも合致しない場合、エラーで終了する基本的に、エラー回避のため、OTHERWISEを使用する。2指定した条件群の複数に合致する場合は、最初に合致した条件のみに分岐するIF-THENの場合、ELSEを使用しなければ複数の条件を同時に扱うことが可能である。実施」→「2演算の結果算出された数値に対して条件判断」という2ステップでおこなわれる。呼ばれる演算処理を行うことになっている。比較式(x=y)が指定されている場合、その式が成り立つのであれば条件式の演算結果は1という数値になる。逆に比較式が成り立たない場合、演算結果は0という数値になる。よって「1または0」どちらかの数値に置き換えられるというわけである。IF-THENステートメントによる条件分岐の実態は、与えられた条件式の演算結果である数値の内容に応じて条件分岐をおこなうことなのである。条件式の値が1(正確には0でも欠損値でもない)の場合、条件が成り立った(論理用語では「真」と呼ぶ)としてTHEN以下のステートメントが実行される。値が0(または欠損値)の場合は、条件が成り立たない(論理用語では「偽」と呼ぶ)としてELSE以下のステートメントが実行されるというわけだ。".または0なので偽である";run;上記のプログラムを実行すると、以下のログが出力される。_null_;」と指定する。DOステートメント(反復処理)あるSASステートメントの処理を繰り返し実行したいときは、DOステートメントを用いて反復処理を行う。増分値]は省略することができ、省略した場合は1としてカウントアップする。ARRAYステートメント(配列処理)配列とは、複数の変数をまとめて定義した一時的な変数グループのことである。複数の変数に対して同一処理をおこないたい場合、その変数群を配列として定義しておけば、変数指定の記述が大幅に省力化することができる。配列の定義はARRAYステートメントで行う。[(初期値リスト)];・変数リストには、文字変数か数値変数のいずれかしか指定できない。・配列の定義と同時に、初期値を割り当てることも可能で、長さも指定できる。・要素数には、変数リストに指定した変数の数を指定しても良いが、一次元配列の場合はアスタリスク「*」を指定することもできる。・要素数を囲むカッコには、丸カッコ()だけでなく、中カッコ{}や大カッコ[]も使用できる。・配列は、定義したDATAステップ内だけで有効である。※既存の配列名を指定した場合は上書きされ、関数名と同じにした場合は、それ以降のステートメントでその関数は使用できなくなる(配列名と見なされる)。_a(no);output;end;run;・要素数にアスタリスク「*」を指定している。・DOステートメントの終了値にDIM関数を指定し、配列「_a」の要素数を取得している。DATAステップでは、新たに変数を作成したり、数値を計算してその結果を変数に代入したりすることができる。通常、DATAステッププログラムは、入力データを読み込んで新しいSASデータセットを作成するという構造で記述される。SASのプログラミング処理によって作成されるSASデータセットは、Windows上では、ひとつのファイルとしてハードディスク上に生成されている。通常、SASを使って処理するためのデータが、最初からSASデータセットとして用意されることはない。