proc printでラベルを折り返したり、縦にだしたり

proc printは、ぱっとデータだすのに便利です。proc report等の柔軟性には当然、及びもつかないのですが、頑張れば結構いけます。

結構、いろんなところで既出のネタですが、

data Q1;
X=1;
label X='ABCDEFGHIJKLMN';
run;

のようになデータについてラベルの内容を出力するのは

proc print data=Q1 label noobs;
run;

labelオプションを追加します。





で、例えばデータの割にラベルが長くて、間延びする場合は

data Q2;
X=1;
label X='A*BCDE*FGHI*JKLMN';
run;

proc print data=Q2 label split='*' noobs;
run;








のようにsplitで区切り文字を指定して、それを入れてラベルを定義すれば
その場所で改行できます。

以前紹介したvlabel関数などと組み合わせれば、一定の長さで区切り文字を挿入して、ラベルを再定義するマクロ等が組めるかと思います。

ちなみに

proc print data=Q1 label heading=v noobs;
run;

heading=v とすれば















のようにすれば、ラベルが縦にでます。

でも、これ2byte文字が入っていると出力されないんですよね、多分なんかオプションを加えないと
いけないのでしょうが、それを知りません。




0 件のコメント:

コメントを投稿