在 r 中压缩很多文件

zipping very many files in r

我在临时目录中有 7300 个 *.csv 文件。我想将它们压缩到 R 中的 zip 存档中。我正在使用以下代码,这将永远占用。除了退出 R 并使用 WinZip 程序之外,有没有办法更快地完成此操作?

fileListing       = list.files( pattern = '*.csv' )
outZipFileName    = gsub( '.zip', '_TZflts.zip', zipName )
sapply(seq_along( fileListing),function(ii) zip( outZipFileName, fileListing[ii] ) )

另一个问题是,除了 zip 文件及其 csv 内容之外,代码中的 zip 进程还会生成大量垃圾文件。

谢谢。

BSL

您不需要遍历文件,zip 可以获取要压缩的文件的向量:这应该会加快速度。来自 ?zip

files is : 'A character vector of recorded filepaths to be included.'

示例

# write some files to be zipped
for(i in 1:10) write.csv(mtcars, paste0("SOtemp", i, ".csv"))

# zip
zip("SOzip", files=list.files(pattern="SOtemp\d"))

# remove files from this example
# file.remove(c("SOzip.zip", list.files(pattern="SOtemp\d")))