根据函数参数R自动创建一个目录。

16 浏览
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月21日
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