データセットラベルの話

知っている方からすると何を今さらなのですが、案外知られてないのではないかと思う話題です。

SASでラベルというと、labelステートメントで定義する変数ラベルのことが思い浮かぶと思うのですが、実は、変数だけではなくデータセットそのものにもラベルを付けることができます。

data Q1(label='20140831作成サンプルデータ');
 X=1;
run;

のように、データセットオプションの中にlabel=と指定することで、データセットにラベルがつきます。

このラベルは







のように、データセットをダブルクリックした際のウインドウ上部に表示されたり、
プロパティでみると





















「説明」の箇所に表示されます。

その他、プロシジャ出力の種類によっては、さりげなく出現します。

一度設定したデータセットラベルは

proc datasets nolist;
 modify Q1(label='20140831修正サンプルデータ');
run;
quit;

のようにして修正できます。


さて、それで一体、このデータセットラベルは何に使うかというと、
実際見たことがあるのが

data Q2(label='20130102作成');
run;

data Q3(label='20110302作成');
run;

data Q4(label='20130405作成');
run;

のように、永久データセットとして何かしらのデータを管理する場合、その説明として
作成日や作成者やバージョンや、その他説明を記載するという使い方です
(上記のコードは、サンプルなのでWORKにつくっていますが)

データステップのsashelp.vtable(SQLプロシジャで参照する場合はdictionary.table)
には、認識されている全てのデータセットの情報が入っているので

例えば後々、2013年に作成したデータセットの一覧が欲しいって際に

data LIST;
 set sashelp.vtable;
 where substr(memlabel,1,4)='2013';
 keep memname memlabel;
run;






みたいに、すぐに把握できたり、これとcall executeとかマクロを組み合わせて
特定のデータセット群を対象に一括処理をするみたいな発想が実現できます。

まあ、知っていて損はないデータセットラベルの話でした。






0 件のコメント:

コメントを投稿