(つまり、setで読み込んだデータセットの最後の行を判別したい。)
setステートメントのendオプションを利用します。
コード
data test;
set sashelp.MACRS3 end = aaa;
bbb = aaa;
run;
「end = 」で指定した一時変数に判定結果を入れています。
最後でないオブザベーションのとき:0
最後のオブザベーションのとき:1
一時的な結果を変数bbbに入れています。
結果

普段わかった気になって使っているsetステートメントですが、意外と仕様は細かく設計されています。
余談
SASでは値や変数を代入するときに、代入演算子(=)の右側が入れ物になることがよくあります。
このあたりは他の言語ではあまり見られない仕様で、直感的に書くと間違うところでもあり、混乱しがちです。
例
・今回のendオプション
・rename
・meansプロシジャの統計量
など。。
仕様なので機械的に覚えてしまいたいです。
コメント