2007年1月20日土曜日

SASHELP.VCOLUMNについて


かなりマニアックな内容ですが、使い方次第では非常に便利なモノです。



デフォルトで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 ;



こんな感じですね。


f:id:n-insight:20070119223828j:image




で、先ほど説明したSASHELP.VCOLUMNを開くと


こんな感じで情報が詰め込まれています。


f:id:n-insight:20070119225000j:image



少し見ずらいですが、最終行付近に


上記で作成した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 ;



のように記述するだけで、期待通りの結果が得られます。


f:id:n-insight:20070119230909j:image





この他にも、様々な場面で利用できると思いますので


是非試してみて下さい。


0 件のコメント:

コメントを投稿

ネイチャーインサイト サイトリニューアル&NIBLOGの引っ越し

ご連絡が遅くなりましたが、 ネイチャーインサイトの際とがリニューアルしました。 https://www.n-insight.co.jp/ それに伴い、NIBLOGも引っ越しすることになりました。 https://www.n-insight.co.jp/niblog/ ...