並び替えというと地味な作業ベスト3くらいに入るだろう作業なイメージです。
そんなことないですか?エクセルでグラフよく使う人は並び替えにはお世話になってるのでしっくりくるかもしれません
並び替えは重要
SASに並び替えは重要です。むしろ一番最初にとりあえず並び替えをしてもいいと思うくらい重要です。
なぜそんなに重要というのか、それは他の統計処理を行う際に並び順がおかしいとエラーになってしまうからです。
例えば、平均を求めようとします。となると使うプロシジャーはproc means
です。
そして求めたい平均値をvar
で指定します。
と、ここでそうだ!男女比で分けよう!と思います。するとby
で分けようとします。
なにも考えずにbyで分けるとエラーになります。
男女別身長体重の平均を求めるSASプログラム(並び替えなし=エラーになります)
data sort;
input id $ sex $ height weight;
cards;
001 m 180 70
002 f 165 60
003 m 175 67
004 f 162 58
;
/*男女別身長の平均 */
proc means data=sort;
var height;
by sex;
run;
/*男女別体重の平均 */
proc means data=sort;
var weight;
by sex;
run;
男女別身長体重の平均を求めるSASプログラム(並び替えあり)
data sort;
input id $ sex $ height weight;
cards;
001 m 180 70
002 f 165 60
003 m 175 67
004 f 162 58
;
/* 並び替え */
proc sort data=sort;
by sex;
run;
/*男女別身長の平均 */
proc means data=sort;
var height;
by sex;
run;
/*男女別体重の平均 */
proc means data=sort;
var weight;
by sex;
run;
このほかにも
proc sort
を使わなくてはいけない場面でよく忘れがちなのは配列変換の時とデータをマージする時です。
行と列を入れ替える(proc transpose
)時に自分はよく忘れてたのは良い思い出です。
ちなみに
忘れるのが怖いという場合by
をclass
に変えるという逃げ道もありますが使えないプロシジャーもありますので気をつけて!!