かなりマニアックな内容ですが、使い方次第では非常に便利なモノです。
デフォルトでLIBNAME割り当てがされているライブラリ参照名「SASHELP」。
このライブラリ内にVCOLUMNというVIEWが存在します。
このVIEWでは現在割り当てられているSASライブラリ(WORKも含む)内の
データ及び変数の情報が確認できます。
例えば以下のようなSASデータセットが存在するとします。
data temp ;
attrib var1 length=$2 label="変数1"
var2 length=8 label="変数2"
;
infile cards ;
input var1 var2 ;
cards ;
01 100
02 200
03 300
04 400
05 500
;
run ;
こんな感じですね。
で、先ほど説明したSASHELP.VCOLUMNを開くと
こんな感じで情報が詰め込まれています。
少し見ずらいですが、最終行付近に
上記で作成したWORK.TEMPの情報が入っています。
ここまで来ればあとは使い方は沢山あると思います。
例えば、外部ファイル出力でヘッダ行にSASの変数ラベルを
付けて出力したい場合などは、
proc sql ;
select name , label format=$quote256. into: mname separated by " " , : mlabel separated by ' "," '
from sashelp.Vcolumn
where (libname="WORK") and (memname="TEMP") ;
quit ;
のような感じでマクロ変数に変数名(MNAME)とラベル名(MLABEL)を登録し、
data _NULL_ ;
set temp ;
file "c:\temp.csv" dsd ;
if _N_=1 then put &mlabel ;
put &mname ;
run ;
のように記述するだけで、期待通りの結果が得られます。
この他にも、様々な場面で利用できると思いますので
是非試してみて下さい。
0 件のコメント:
コメントを投稿