|
|
複数の外部ファイルにデータを書き出す方法 [OS]ALL
[リリース] 6.07以降
[キーワード] base, datastep, file, filevar=, put, header=, by, retain, first
[質問]SASデータセットから条件に従って複数の外部ファイルにデータを書き出す方法を教えてください。 [回答]
SAS 6.04までは書き出すファイルごとに何度もFILEステートメントを記述しなければなりませんでしたが、SAS 6.06からはFILEVAR=オプションを指定することにより、FILEステートメントを一度指定するだけで複数の外部ファイルにデータを書き出すことができるようになりました。
proc sort data=sales;
by month car;
run;
data _null_;
set sales;
by month car;
retain selfile;
if first.month then do; /* 変数month(月)がブレークした時に */
totsale=0; /* 小計・合計をクリアし、出力先の */
carsale=0; /* ファイル名を変数selfileにセットする */
selfile= 'mon'||put(month,$char2.)||'.txt';
end;
totsale+kingaku; carsale+kingaku;
file dummy print notitle filevar=selfile header=head;
if last.car then put @5 car
@20 carsale yen10.;
if last.month then put @18 '------------' /
@19 totsale comma10. @33 '支店合計';
return;
head:
put @15 month '月 売り上げ' //
@5 '車 名' @20 '合 計' /;
return;
run;
なおINFILEステートメントでもFILEVAR=オプションが使えます。したがって、条件に応じて複数の外部ファイルからデータを読み込むアプリケーションも作成できます。 [参考]
|
|||||