如何在单个 R 会话中创建多个临时目录?

How to create multiple tempdirs in a single R session?

我需要在单个 R 会话期间创建多个临时目录,但每次调用 tempdir() 时我都会得到相同的目录。

有没有一种简单的方法可以确保每次调用都会给我一个新的临时目录?

你只能有一个临时目录。但是您可以在其中创建子目录并改用它们。

如果您想自动创建这些子目录(而不必手动命名),您可以使用:

if(dir.exists(paste0(tempdir(), "/1"))) {
  dir.create(paste0(
    tempdir(), paste0(
      "/", as.character(as.numeric(sub(paste0(
        tempdir(), "/"
      ),
      "", tail(list.dirs(tempdir()), 1))) + 1))))
} else {
  dir.create(paste0(tempdir(), "/1"))
}

此表达式将命名第一个子目录 1 和任何后续子目录,增量为 1(因此 23 等)。

这样你就不必跟踪你已经创建了多少个子目录,你可以在函数等中使用这个表达式

使用dir.create(tempfile()) 在 R 临时目录中创建一个唯一命名的目录。根据需要重复。