2010年3月13日土曜日

ZIP形式で圧縮されたテキストファイルを解凍しないで読み込む方法

NESUG(NorthEast SAS Users Group)のサイトに掲載されていました。

よく読むとundocumentedな機能らしいですが・・・

例えば、temp1.csv~temp3.csvのようなCSVファイルがZIP形式でひとつにまとめられたファイルがあるとします。
↓ ファイル名はtemp_all.zipです。


↓ ZIPファイルの中身はこのような感じです。


↓ 例えば、temp2.csvの中身はこのような感じです。


このtemp_all.zipを解凍しないで圧縮されたままの状態で、その中の1ファイルを読み込む方法です。
(ここでは、temp2.csvを読み込みます)

まず、FILENAMEステートメントでZIPファイルをファイル参照名に定義します。
  filename ファイル参照名 saszipam "ZIPファイルの保存場所" ;
例) filename zipfile saszipam "D:\temp\temp_all.zip" ;

ファイルを読み込むDATAステップのINFILEステートメントではこのように指定します。
  infile ファイル参照名ファイル名 ) ;
例) infile zipfile(temp2.csv) ;
INFILEステートメントのその他オプションは適時指定します。

↓ まとめるとこのような感じです。


↓ 実行結果のログです。

3オブザベーション、3変数のデータセットが作成されたことが確認できます。

↓ 実際にデータを開いてみました。

きちんと読み込めているようですね。



う~ん、ちょっと使いどころがあまり思いつきませんが・・・
いや、いつか役に立つかもしれません!
こんなこともできるんだなぁぐらいの気持ちで覚えておきましょう!


投稿者:@massu_NI


2 件のコメント:

  1. Great article, thanks for sharing! Do not forget to come back to my blog. Indonesian bloggers greetings :)

    返信削除

ネイチャーインサイト サイトリニューアル&NIBLOGの引っ越し

ご連絡が遅くなりましたが、 ネイチャーインサイトの際とがリニューアルしました。 https://www.n-insight.co.jp/ それに伴い、NIBLOGも引っ越しすることになりました。 https://www.n-insight.co.jp/niblog/ ...