複数の外部ファイルにデータを書き出す方法 [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=オプションが使えます。 したがって、条件に応じて複数の外部ファイルからデータを読み込むアプリケーションも作成できます。 [参考]
|