Często piszę skrypty R, które generują wiele wyników. Uważam, że łatwiej jest umieścić te dane wyjściowe we własnych katalogach. To, co napisałem poniżej, sprawdzi istnienie katalogu i przejdzie do niego lub utworzy katalog, a następnie przejdzie do niego. Czy istnieje lepszy sposób na to?
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()
w kodzie R - to w zasadzie przeczy idei używania katalogu roboczego, ponieważ nie możesz już łatwo przenosić kodu między komputerami.
.bat
plikiem, którego użytkownik nigdy nie będzie musiał modyfikować.
setwd
pracować ze ścieżkami sieciowymi. Wystarczy podać ścieżki, aby zapisać wyniki i nadal pracować z bieżącą ścieżką (tą, która jest ustalana przy rozpoczęciu sesji R.) Lub uruchom R z pożądanym katalogiem roboczym.
out_dir <- "path/to/output/directory"
a następnie użyj write.table(file = file.path(out_dir,"table_1.csv"), ...)
. Lub nawet out_file <- function(fnm) file.path("path/to/output/directory", fnm)
wtedy write.table(file = out_file("table_1.csv"), ...)
(podobna metoda, której używam podczas pracy z dyskami sieciowymi).