ラベル sumby の投稿を表示しています。 すべての投稿を表示
ラベル sumby の投稿を表示しています。 すべての投稿を表示

proc printはODS OUTPUTステートメントをサポートしていない話

今回は、思いつきが失敗した話になります。

以前、「Create tableだけがSQLプロシジャでデータセットを作る方法ではないという話」
http://sas-tumesas.blogspot.jp/2013/10/create-tablesql.html

でSQLプロシジャの出力をODS OUTPUTステートメントで捉えてデータセット化するという内容を紹介しました。
それで、最近ふと思ったのが、それってproc printでもできるのか?ということでした。

例えば以下のようなデータセットがあったとします。

data Q1;
do X=1 to 4;
 do Y=1 to 3;
  output;
  end;
 end;
run;

















そこに

proc print data=Q1 noobs;
 var Y;
 id X ;
 by X ;
run;

を実行すると
idステートメントとbyステートメントの同時指定の効果により


















のようなアウトプットがでます。
この形をデータセットで欲しいなと思って

ods output Print=OUT;
proc print data=Q1 noobs;
 var Y;
 id X ;
 by X ;
run;

として、実行しなおしてみると




ERROR: PROC PRINT はODS OUTPUT」ステートメントをサポートしていません
と見事に怒られてしましました。
悪くないアイデアだと思ったのですが、、。

ちなみに全然関係なく、id by sumbyの併用で、いかのような出力が得られ、たまに検算する時に
使います。

proc print data=Q1 noobs;
 var Y;
 id X;
 by X ;
 sumby X;
run;