データセットのソート情報を取得する

[OS] ALL
[リリース] ALL
[キーワード] Base, data set, sort information

[質問]

データセットのプロパティやCONTENTSプロシジャのアウトプットから、ソート済みデータセットのキー変数を確認することができますが、この情報をデータセットに取得することはできますか?

[回答]

CONTENTSプロシジャステートメントのOUT=オプションにより、変数情報をデータセットに出力することができます。

次の例では、name、sex、age、height、weightの5つの変数を持つデータセットsashelp.classをage、sexをキーにソートしています。
出力データセットout1は、オブザベーションごとに各変数の情報を格納する計5オブザベーションのデータセットとなります。
出力データセットに含まれる変数SORTEDBYの値(数値)により、キー変数を判断できます。


                                /* 変数age、sexをキーにしてソート */
  PROC SORT DATA=sashelp.class OUT=test;
    BY age sex;
  RUN;

           /* CONTENTSプロシジャのアウトプットをデータセットに出力 */
  PROC CONTENTS DATA=test OUT=out1;
  RUN;

また、ODS機能によりプロシジャのアウトプットをデータセットに出力する方法もあります。
出力データセットout2の変数CVALUE1に「Age Sex」という値が格納されます。


                               /* ODS機能によりデータセットに出力 */
  ODS OUTPUT SORTEDBY=out2;
  PROC CONTENTS DATA=test;
  RUN;
  ODS OUTPUT CLOSE ;