データセットオプションの適応順の推測

自分がしょっちゅう間違えるので、自分のために整理します。

さて

data Q1;
 do X=1 to 10;
  output;
 end;
run;

のデータセットがあります。


以下の①から④までのプログラムを実行したとき
エラー・ワーニングがでずに、きちんとYにリネームされた
データセットが作成されるのはどれでしょうか??

/*①*/
proc sort data=Q1 out=A1(rename=(X=Y) where=(X>5));
 by X;
run;

/*②*/
proc sort data=Q1 out=A2(rename=(X=Y) where=(Y>5));
 by X;
run;

/*③*/
proc sort data=Q1 out=A3(rename=(X=Y) keep=X);
 by X;
run;

/*④*/
proc sort data=Q1 out=A4(rename=(X=Y) keep=Y);
 by X;
run;


なんか、SAS BASEの資格試験にでてきそうな、いやらしい問題ですね



まず
【①の結果】








データセットは作成されません


【②の結果】








【③の結果】









【④の結果】









WARNINGだけですが、データセットは作成されてません


というわけで

×


×

でした。


推理するに、データセットオプション内でのステートメントについて
keep → rename → where
の順で適応されているということでしょうかね。

たぶん、きちんと資料読めば、どっかに書いてあるんでしょうか、とりあえずここまで






0 件のコメント:

コメントを投稿