世代データセット管理を利用した、更新前データセットの保存方法
[OS]ALL
[リリース] 8.1, 8.2
[キーワード] DATASET, GENMAX, GENNUM
[質問]SASデータセットを世代管理する方法を教えてください。
[回答]SAS System 8eの新機能として、データステップでデータセットの世代管理を行なう機能が追加されました。これにより、更新前のデータセットを保存できるようになりました。 SAS System 8では、DATAステップでGENMAX=データセットオプションを指定することにより、最大1001個までの世代データセットを保存できます(保存できる世代数は、ディスク容量に依存します)。 下記のサンプルプログラム1では、GENMAX=データセットオプションの指定により、ベースバージョン(最新のデータセット)を1つと、ヒストリカルバージョン(世代データセット)を2つ、併せて3つのデータセットを保存するように設定しています。
サンプルプログラム1: /* 世代作成1回目 */ DATA test(GENMAX=3); a=1; RUN; /* 世代作成2回目*/ DATA test(GENMAX=3); a=2; RUN; /* 世代作成3回目*/ DATA test(GENMAX=3); a=3; RUN;また、GENNUM=データセットオプションを使用することにより、過去のデータセットの世代数を直接指定して参照・利用することも可能です。
サンプルプログラム2: /* 2世代前の参照 */ DATA _null_ ; SET test(GENNUM=-2); PUT a= ; RUN;
GENNUM=データセットオプションには、最新のデータセットを参照する場合は「0」、1世代前の場合は「-1」、2世代前の場合は「-2」・・・・のように数値を指定します。 |