HULFT転送されてきたテキストファイルを読み込んでデータセット化するときに、元のファイルは残しておきたいことがあります。そのときに、圧縮して保存しとくと容量削減できて良いです。下のサンプルは、お馴染みCLASSのデータを使ったものです。名前と年齢をZIPファイルに出力し、後半のDATAステップでZIPファイルから読み取っています。
- 23 filename foo ZIP 'C:\temp\testzip.zip';
- 24
- 25 /* write to zip file */
- 26 data _null_;
- 27 file foo(class);
- 28 set sashelp.class;
- 29 put name age;
- 30 run;
- NOTE: ファイルライブラリFOO :
- Directory=C:\temp\testzip.zip
- NOTE: 出力ファイルFOO(class) :
- Filename=C:\temp\testzip.zip,
- Member Name=class
- NOTE: 19レコードをファイルライブラリFOOに書き込みました。
- 最小レコード長は9です。
- 最大レコード長は15です。
- NOTE: 19レコードを出力ファイルFOO(class)に書き込みました。
- 最小レコード長は9です。
- 最大レコード長は15です。
- NOTE: データセットSASHELP.CLASSから19オブザベーションを読み込みました。
- NOTE: DATAステートメント処理(合計処理時間):
- 処理時間 0.01 秒
- CPU時間 0.01 秒
- 31
- 32 /* read from zip file */
- 33 data work.class;
- 34 infile foo(class);
- 35 input name $ age;
- 36 run;
- NOTE: 入力ファイルライブラリFOO:
- Directory=C:\temp\testzip.zip
- NOTE: 入力ファイルFOO(class) :
- Filename=C:\temp\testzip.zip,
- Member Name=class
- NOTE: 19レコードを入力ファイルライブラリFOOから読み込みました。
- 最小レコード長は9です。
- 最大レコード長は15です。
- NOTE: 19レコードを入力ファイルFOO(class)から読み込みました。
- 最小レコード長は9です。
- 最大レコード長は15です。
- NOTE: データセットWORK.CLASSは19オブザベーション、2変数です。
- NOTE: DATAステートメント処理(合計処理時間):
- 処理時間 0.01 秒
- CPU時間 0.01 秒
ログを貼ってから気がついた。
返信削除このログは、SAS Log Utilityで、ZIPファイルの読み書きを捕捉できない!
CSVでエクスポートしながらZIPファイルに書き込むことも可能です。member=でファイル名を指定します。
返信削除filename foo zip 'C:\temp\foo.zip' member='iris.txt';
proc export data=sashelp.iris outfile=foo
dbms=dlm replace;
delimiter='|';
run;