Как создать несколько темпдиров в одном сеансе R? - PullRequest
6 голосов
/ 21 октября 2019

Мне нужно создать несколько временных каталогов во время одного сеанса R, но каждый раз, когда я вызываю tempdir (), я получаю один и тот же каталог.

Есть ли простой способ убедиться, что каждый вызов даст мне новыйвременный каталог?

Ответы [ 2 ]

5 голосов
/ 21 октября 2019

Используйте dir.create(tempfile()), чтобы создать каталог с уникальным именем во временном каталоге R. Повторите при необходимости.

2 голосов
/ 21 октября 2019

У вас может быть только один темпдир. Но вы можете создать в нем подкаталоги и использовать их вместо этого.

Если вы хотите автоматизировать создание этих подкаталогов (вместо того, чтобы называть их вручную), вы можете использовать:

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 (например, 2, 3 и т. Д.).

Таким образом, вам не нужно отслеживать, какмногие подкаталоги, которые вы уже создали, и вы можете использовать это выражение в функции и т. д.

...