最後のオブザベーションかどうか判別したい

スポンサーリンク

(つまり、setで読み込んだデータセットの最後の行を判別したい。)
setステートメントのendオプションを利用します。

コード
data test;
  set sashelp.MACRS3 end = aaa;
  bbb = aaa;
run;

「end = 」で指定した一時変数に判定結果を入れています。
最後でないオブザベーションのとき:0
最後のオブザベーションのとき:1

一時的な結果を変数bbbに入れています。

結果

普段わかった気になって使っているsetステートメントですが、意外と仕様は細かく設計されています。


余談

SASでは値や変数を代入するときに、代入演算子(=)の右側が入れ物になることがよくあります。
このあたりは他の言語ではあまり見られない仕様で、直感的に書くと間違うところでもあり、混乱しがちです。

・今回のendオプション
・rename
meansプロシジャの統計量
など。。

仕様なので機械的に覚えてしまいたいです。

コメント