糸谷新竜王爆誕の話 ついでに#byvalと put (=)とか

糸谷新竜王が誕生しました!本当に嬉しいです!大学で哲学の授業も受けたくて文学部入って心理学専攻した僕からしたら、院で哲学専攻しながら(現在休学中)竜王を獲得した糸谷竜王はもう憧れです。
嬉しいな~。色々と癖強いところも、もう好きすぎです。

あ、一応、SASの話もしときます。
SAS University Edition(もう面倒くさいから、これからはSASウニもしくは雲丹と表記します)

雲丹のアウトプットは通常のSASのと若干見栄えが違いますが、まあだいたい似たようなものなので製品版をお使いの方は、実際動かして出力してみてください。


data Q1;
input JCLASS $ DAN NAME:$20.;
cards;
A 9 久保利明
A 9 三浦弘行
A 8 広瀬章人
A 8 阿久津主税
B1 8 木村一基
B1 9 藤井猛
B1 8 山崎隆之
run;











といったデータがあって(今期の順位戦在籍クラスと、現時点の段位です)

proc sort data = Q1;
 by JCLASS DAN;
run;

ods html file="/folders/myfolders/output_1.html";
proc print data=Q1 noobs;
 by JCLASS DAN;
run;
ods html close;

とすると



























となります。

このby値の表示の部分を好きにカスタマイズできます。
具体的にはtitleステートメント内に #byval(by変数) とすることでそこの部分に
by値が入ります。

例えば

ods html file="/folders/myfolders/output_2.html";
options nobyline;
proc print data=Q1 noobs;
 title "順位戦:#byval(JCLASS) #byval(DAN)段";
 by JCLASS DAN;
run;
ods html close;



って感じです。

もう一つ小技、putステートメントで

data _null_;
set Q1;
file print;
put JCLASS= DAN= NAME=;
run;

とすると













といった出力がでます。

これを

data _null_;
set Q1;
file print;
put (JCLASS DAN NAME) (=);
run;


ともかけます。
最近知りました。

もちろん

data _null_;
set Q1;
file print;
put (_all_) (=);
run;

でもOK


1 件のコメント:

  1. put _all_=;
    としてERRORが出て、めんどくさっ!て思った記憶があります。
    早速ためして感激です。

    (メールは見ていただけたでしょうか・・・)

    返信削除