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/