トップ 一覧 検索 ヘルプ RSS ログイン 印刷

unzip()の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
EDINETから有価証券報告書などをAPI経由で取得すると、文書番号をファイル名とした圧縮ファイルになっている。

中身は、有価証券報告書などが入ったXBRLファイルを始め、DTDファイルなどが入っているが、たくさんのファイルを分析するときにはいちいち手作業で解凍していられない。



そこで、Rのunzip()関数を使う。
!ダウンロードした圧縮ファイルを解凍する

  unzip(zipFile, list = TRUE)

とすれば、zipFileに入っている圧縮前ファイル一覧が取得できる。

また、解凍したければ

 unzip(zipFile, list = FALSE)

別のライブラリreadrを使って解凍せずに直接読み取ることも出来るようだが、複数ファイルが含まれている場合は定かではない。

 csv_file = readr::read_csv("hogehoge.zip")

!連続してファイルを解凍する

 #ディレクトリの中のZIPファイル一覧を取得
 zip_files = list.files(zipfiledir, pattern = "*.zip", full.names = TRUE)  
 
 #map関数にファイル一覧と処理関数UNZIPと出力先ディレクトリを渡してやる
 purrr::map(.x = zip_files, .f = unzip, exdir = "workingDir")

 


:参照先:

* https://stackoverflow.com/questions/8986818/automate-zip-file-reading-in-r
* https://stackoverflow.com/questions/12460938/r-reading-in-a-zip-data-file-without-unzipping-it
* https://stackoverflow.com/questions/41954183/how-can-i-extract-multiple-zip-files-and-read-those-csvs-in-r
* 
* https://www.it-swarm.dev/ja/r/r%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E5%9C%A7%E7%B8%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%80%81%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%97%E3%81%A6%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B/969800613/