Я часто пишу сценарии на 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))
}
setwd()
в коде R - это в основном отрицает идею использования рабочего каталога, потому что вы больше не можете легко перемещать свой код между компьютерами.
.bat
файл, который конечному пользователю никогда не придется изменять.
setwd
работать с сетевыми путями. Вам просто нужно указать пути, чтобы сохранить результаты и по-прежнему работать с текущим путем (который устанавливается при запуске сеанса R). Или запустить R с желанием рабочего каталога.
out_dir <- "path/to/output/directory"
а затем использовать write.table(file = file.path(out_dir,"table_1.csv"), ...)
. Или даже out_file <- function(fnm) file.path("path/to/output/directory", fnm)
и тогда write.table(file = out_file("table_1.csv"), ...)
(аналогичный метод я использую при работе с сетевыми дисками).