Мені часто доводиться писати 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"), ...)
(подібний метод я використовую при роботі з мережевими накопичувачами).