我正在尝试读取我从网络中提取的文件中包含的csv文件。问题是压缩文件有多个级联文件夹。我必须为几个不同的单位做到这一点,所以我正在执行一个循环。循环没有问题,文件名是正确的,我可以下载文件。但是我得到一条错误消息(我认为是因为R无法找到我要求它找到的确切文件)。错误是:
Error in open.connection(file, "rt") : cannot open the connection
In addition: Warning message:
In open.connection(file, "rt") :
cannot locate file 'XXXX.csv' in zip file 'c:\yyy\temp\bla\'
download.file(paste("http://web.com_",units[i],"_",places[j],".zip",
sep=""),
temp,
cacheOK = F )
data <- read.csv2(unz(temp,
paste("name_",units[i],"_",places[j],".csv",
sep="")),
header=F,
skip=1)
unlink(temp)
fili<-rbind(X,
data)
}
如何让R找到我想要的文件?
答案 0 :(得分:1)
你有正确的方法,但(如警告所示)文件名错误。
在开始尝试阅读其内容之前,值得仔细检查zip文件是否存在。
if(file.exists(temp))
{
read.csv2(unz(...))
} else
{
stop("ZIP file has not been downloaded to the place you expected.")
}
浏览下载的文件(您可能希望先将其解压缩)以确保您正在寻找适合CSV内容的位置,这也是一个好主意。
答案 1 :(得分:0)
看起来你要阅读的文件位于目录中。在这种情况下,您的阅读应更改如下:
data <- read.csv2(unz(temp,
paste("**dirname**/name_",units[i],"_",places[j],".csv",
sep="")),
header=F,
skip=1)