1

我正在尝试读取包含在我从网络上提取的文件中的 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 找到我想要的文件?

4

2 回答 2

1

你有正确的方法,但是(正如警告告诉你的)错误的文件名。

在开始尝试读取其内容之前,值得仔细检查 zip 文件是否存在。

if(file.exists(temp))
{
  read.csv2(unz(...))
} else
{
  stop("ZIP file has not been downloaded to the place you expected.")
}

浏览下载的文件(您可能希望先将其解压缩)以确保您在正确的位置查找 CSV 内容也是一个好主意。

于 2012-05-24T08:34:53.203 回答
0

看起来您要阅读的文件位于目录中。在这种情况下,您的读数应更改如下:

data <- read.csv2(unz(temp,
                   paste("**dirname**/name_",units[i],"_",places[j],".csv",
                   sep="")),
                   header=F,
                   skip=1)
于 2013-01-28T08:11:38.433 回答