如何覆盖在R中的函数中创建的文件夹?

时间:2017-05-31 02:43:51

标签: r function

背景

我有一个名为BP的函数(参见下面的R代码)。此功能:(1)创建一个文件夹。 (2)将文件夹设置为工作目录。 (3)创建两个图。 (4)将每个绘图保存为在(1)中创建的文件夹中的png文件。

问题

如果我运行此功能超过1次,我会收到以下错误消息: Warning message: In dir.create(x) : 'C:\Users\...\Documents\Animation' already exists

我该如何使用此功能"覆盖"每次运行后它创建的上一个文件夹?

BP = function(){
################################       # set working directory to "home"
setwd("~")
x <- paste0(getwd(), "/", "Animation") # Define the path & name of a new folder
dir.create(x)                          # create the new folder with name above
setwd(x)                               # set this just created folder as Work.Direc.

################################       # Create two plots save them as png in the above 
                                       # folder
for(i in 1:2) {

png(paste0("plot_", i, ".png"), width = 1200, height = 1300, res = 200)

plot( rnorm(1e2) )

dev.off()

   }

}

## Test Here:
BP()

1 个答案:

答案 0 :(得分:2)

每次调用函数时都不需要创建新文件夹。使用file.exists检查文件夹是否存在(尽管它的名称也适用于文件夹)。仅创建文件夹(如果尚不存在)。

如果您需要在每个函数调用中清空文件夹,可以使用

执行此操作
file.remove(list.files(x, full.names = TRUE))