前のページ|次のページ

IF-THEN/ELSEステートメント

特定の条件を満たすオブザベーションに対して、SASステートメントを実行します。

該当要素: DATAステップ
カテゴリ: 制御
種類: 実行

構文

IF expression THEN statement;
<ELSE statement;>

引数

expression

任意のSAS式を指定します。この引数は必須です。

statement

実行SASステートメントまたはDOグループを指定できます。

詳細

SASでは、IF-THENステートメントの式を評価し、非ゼロ、ゼロ、または欠損のいずれかの結果を生成します。評価結果が非ゼロおよび非欠損の場合、この式は真になります。評価結果がゼロまたは欠損の場合、この式は偽になります。
IF句に指定した条件に一致すると、IF-THENステートメントはSASデータセットから読み込んだオブザベーション、外部ファイルのレコード、または計算値に対して、SASステートメントを実行します。THEN句が実行されない場合、オプションのELSEステートメントが代替アクションを指示します。ELSEステートメントを使用する場合、IF-THENステートメントの後に指定します。
ELSEステートメントを指定せずにIF-THENステートメントを使用する場合、すべてのIF-THENステートメントが評価されます。ELSEステートメントを指定してIF-THENステートメントを使用する場合、真のステートメントが検出されるまでIF-THENステートメントが実行されます。その後のIF-THENステートメントは評価されません。
注: 効率を高めるには、IF-THEN/ELSEステートメントに条件をその確率の降順になるように指定します。

比較

  • 相互排他な多数の条件を指定する場合、IF-THENステートメントではなくSELECTグループを使用します。
  • IF句に指定した条件に一致するオブザベーションまたはレコードのみの処理を続けるには、THEN句を指定せずにサブセット化IFステートメントを使用します。

例: IF-THEN/ELSEステートメントの各種の指定方法

これらの例では、IF-THEN/ELSEステートメントの各種の指定方法を示します。
  • if x then delete;
  • if status='OK' and type=3 then count+1;
  • if age ne agecheck then delete;
  • if x=0 then  
       if y ne 0 then put 'X ZERO, Y NONZERO'; 
       else put 'X ZERO, Y ZERO';
    else put 'X NONZERO';
  • if answer=9 then
       do;
          answer=.;
          put 'INVALID ANSWER FOR ' id=;
       end;
    else
       do;
          answer=answer10;
          valid+1;
       end;
  • data region;
       input city $ 1-30;
       if city='New York City'
          or city='Miami' then
          region='ATLANTIC COAST';
       else if city='San Francisco'
          or city='Los Angeles' then
             region='PACIFIC COAST';
       datalines;
    ...more data lines...
    ;

関連項目:

前のページ|次のページ|ページの先頭へ