使用r进行文件夹管理:检查目录是否存在,如果不存在则创建。

40 浏览
0 Comments

使用r进行文件夹管理:检查目录是否存在,如果不存在则创建。

我经常编写生成大量输出的R脚本。我认为将这些输出放入自己的目录中更加清晰。我编写的以下内容将检查目录是否存在并进入该目录,或创建目录然后再进入该目录。有更好的方法来处理这个问题吗?

mainDir <- "c:/path/to/main/dir"
subDir <- "outputDirectory"
if (file.exists(subDir)){
    setwd(file.path(mainDir, subDir))
} else {
    dir.create(file.path(mainDir, subDir))
    setwd(file.path(mainDir, subDir))
}

admin 更改状态以发布 2023年5月22日
0
0 Comments

从2015年4月16日起,随着R 3.2.0的发布,出现了一个名为dir.exists()的新函数。要使用此函数并在目录不存在的情况下创建目录,您可以使用:

ifelse(!dir.exists(file.path(mainDir, subDir)), dir.create(file.path(mainDir, subDir)), FALSE)

如果目录已经存在或无法创建,则此操作将返回False;如果目录之前不存在,但成功创建,则返回True。

请注意,如果只是要检查目录是否存在,可以使用

dir.exists(file.path(mainDir, subDir))

0
0 Comments

使用showWarnings = FALSE

dir.create(file.path(mainDir, subDir), showWarnings = FALSE)
setwd(file.path(mainDir, subDir))

dir.create()如果目录已经存在,则不会崩溃,而是会打印出警告。因此,如果你可以接受看到警告,那么只需要这样做就可以了:

dir.create(file.path(mainDir, subDir))
setwd(file.path(mainDir, subDir))

0