前のページ|次のページ

STOPステートメント

現在のDATAステップの実行を中止します。

該当要素: DATAステップ
カテゴリ: アクション
種類: 実行

構文

STOP;

引数なし

STOPステートメントでは、現在のDATAステップの処理を中止し、現在のDATAステップ以降のステートメントから処理を再開します。

詳細

現在のDATAステップのデータセットは出力されます。しかし、STOPの実行時に処理されていたオブザベーションは追加されません。STOPステートメントはそれだけでも、IF-THENステートメントまたはSELECTグループと組み合わせても使用できます。
STOPステートメントは、SETステートメント内のPOINT=オプションなど、ランダムアクセスを使用してSASデータセットを読み込む機能と一緒に使用します。ランダムアクセスでは、EOFを検出できません。そのため、DATAステップの無限ループを回避するプログラムステートメントを指定する必要があります。

比較

  • ウィンドウ環境または他の対話型モードの操作を使用している場合、ABORTステートメントおよびSTOPステートメントの両方で処理を中止することができます。ABORTステートメントでは自動変数_ERROR_の値を1に設定しますが、STOPステートメントでは設定しません。
  • バッチモードまたは非対話型モードでは、この2つのステートメントの結果は異なります。バッチモードまたは非対話型モードではSTOPステートメントを使用して、処理を次のDATAステップまたはPROCステップから再開します。

例1: 基本的な使用

  • stop;
  • if idcode=9999 then stop;
  • select (a);
       when (0) output;
       otherwise stop;
    end;

例2: 無限ループの回避

この例は、ランダムアクセスを使用している場合に、STOPを使用してDATAステップでの無限ループを回避する方法を示しています。
data sample;
   do sampleobs=1 to totalobs by 10;
      set master.research point=sampleobs nobs=totalobs;
      output;
   end;
   stop;
run;

関連項目:

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