今日たまたまタイトルにあるような質問を3回別の方から頂いたので記念に。
以下のデータで、最後のオブザベーションを読み込んだ時に何かしたい。
* サンプルデータ ;
data DT1; do X=1 to 5; output; end; run;
|
SETステートメントに END=オプションを指定する事で、
- 最後のオブザベーションだったら「1」、それ以外は「0」が一時変数に入る。
- 一時変数は出力データセットに残りません。
構文
例
以下は最後のオブザベーションだったら変数FLGに「1」を入れる例。
注意
後、POINT=オプションによるランダムアクセスを使用してデータセットを読み取っている場合、END=オプションは使用できない(正しく動作しない)ようなので注意。
SET データセット名 END = 適当な一時変数名; |
以下は最後のオブザベーションだったら変数FLGに「1」を入れる例。
data DT2;
set DT1 end=EOF; if EOF=1 then FLG=1; run;
|
以下のようにWHEREステートメントで絞ったうえで最後のオブザベーションを判定することは出来ますが、、
data DT3;
set DT1 end=EOF; where X < 3; if EOF=1 then FLG=1; run;
|
サブセット化IFを使ってる場合は、判定できないのでご注意ください。
data DT3;
set DT1 end=EOF; if X < 3; if EOF=1 then FLG=1; run;
|
後、POINT=オプションによるランダムアクセスを使用してデータセットを読み取っている場合、END=オプションは使用できない(正しく動作しない)ようなので注意。
0 件のコメント:
コメントを投稿