75

我创建了一个 R markdown 文件,该文件首先从 Web 加载文件。我发现 cache=TRUE 有点不稳定,所以我想在下载文件之前输入一个 if 条件来检查下载的文件。

当前代码 - 始终下载文件

fileURL <- "https://dl.dropbox.com/u/7710864/courseraPublic/samsungData.rda"
setInternet2(TRUE)
download.file(fileURL ,destfile="./data/samsungData.rda",method="auto")
load("./data/samsungData.rda")

所需代码 - 仅在尚未下载时才上传

 destfile="./data/samsungData.rda"    
 fileURL <-
 "https://dl.dropbox.com/u/7710864/courseraPublic/samsungData.rda"   
 if (destFile doesNotExist) {
    setInternet2(TRUE)
    download.file(fileURL ,destfile,method="auto") }
    load("./data/samsungData.rda")
 }
 load(destfile)

什么语法会给我条件“destFile doesNotExist”

4

3 回答 3

82

您可以使用tryCatch

  if(!file.exists(destfile)){
    res <- tryCatch(download.file(fileURL,
                              destfile="./data/samsungData.rda",
                              method="auto"),
                error=function(e) 1)
    if(dat!=1) load("./data/samsungData.rda") 
}
于 2013-02-16T00:07:18.387 回答
26

根据@agstudy 给出的答案

 destfile="./data/samsungData.rda" 
 fileURL <-
 "https://dl.dropbox.com/u/7710864/courseraPublic/samsungData.rda"   
 if (!file.exists(destfile)) {
    setInternet2(TRUE)
    download.file(fileURL ,destfile,method="auto") }
    load("./data/samsungData.rda")
 }
 load(destfile)
于 2013-02-16T12:43:40.110 回答
11

检查工作目录中是否存在文件的简单方法是: which(list.files() == "nameofile.csv")

这并不能完全回答他的问题,但我认为这可能对只想检查其目录中是否存在特定文件的人有所帮助。

于 2017-10-21T10:57:23.650 回答