【发布时间】:2017-08-01 20:11:21
【问题描述】:
我正在从联合国粮农组织下载一个 78MB 的 zip 文件,其中包含一个 2.66GB 的 csv。我可以使用 winzip 从文件夹中解压缩下载的文件,但无法使用 R 中的unzip() 解压缩文件:
警告 - 78MB 下载!
url <- "http://fenixservices.fao.org/faostat/static/bulkdownloads/FoodBalanceSheets_E_All_Data_(Normalized).zip"
path <- file.path(getwd(),"/zipped_data.zip")
download.file(url, path, mode = "wb")
unzipped_data <- unzip(path)
这会导致警告和解压缩文件失败:
警告信息
在 unzip(path) 中:zip 文件已损坏
在我看到的?unzip 文档中
“它确实支持bzip2压缩和> 2GB zip文件(但不支持> = 4GB文件预压缩包含在zip文件中:像许多解压缩版本一样,它可能会截断这些,在R的情况下会发出警告如果可能)”
这让我相信unzip() 应该处理我的文件,但同样的过程已成功下载、解压缩并从 FAOstat 读取多个其他较小的表格。我的 csv 大小是否有可能是此错误的根源?如果是这样,解决方法是什么?
【问题讨论】:
-
您可以在 R 中构建一个 shell 命令,在您的文件上调用 winzip,并使用 R 中的
shell函数执行它。如果您将其包装到函数unzip2中,则不会有太大区别 -
我在其他建议
system的帖子上看到了这个想法,但我还没有看到一个例子。你能提供一个,或者指出我正确的方向吗?感谢您的帮助! -
查看我的回答,请给我一些反馈,以便我改进它,因为它未经测试并且包含一些不确定性。