【发布时间】:2015-07-23 13:42:06
【问题描述】:
我正在尝试编写一个下载 .zip 存档、从该存档中提取特定 Excel 文件并将该 Excel 文件加载到我的 R 工作区而无需编写任何这些文件(.zip 或.xls) 到我的硬盘。
我已经编写了适用于压缩 .csvs 的此过程的一个版本,但不适用于 .xls。以下是该版本的运行方式,使用我在当前项目中定位的 URL 之一,并在适当的时候使用 readWorksheetFromFile() 而不是 read.csv():
library(XLConnect)
waed.old.link <- "http://eventdata.parusanalytics.com/data.dir/pitf.world.19950101-20121231.xls.zip"
waed.old.file <- "pitf.world.19950101-20121231.xls"
tmp <- tempfile()
download.file(waed.old.link, tmp)
tmp2 <- tempfile()
tmp2 <- unz(tmp, waed.old.file)
WAED.old <- readWorksheetFromFile(tmp2, sheet = 1, startRow = 3, startCol = 1, endCol = 73)
unlink(tmp)
unlink(tmp2)
这是第 8 行之后弹出的内容,即尝试将电子表格提取为 WAED.old 的内容:
Error in path.expand(filename) : invalid 'path' argument
在那一步我也试过read_excel(),得到了同样的结果:
> WAED.old <- read_excel(tmp2, skip = 2)
Error in file.exists(path) : invalid 'file' argument
我认为这与将readWorksheetFromFile() 指向连接而不是文件有关,但我不确定这是否正确,如果是,我不知道如何修复它。我在 stackoverflow 和网络上搜索了答案,但找不到正确的答案。非常感谢您的帮助。
【问题讨论】:
标签: r excel download unzip temp