Je me retrouve souvent à écrire des scripts R qui génèrent beaucoup de sortie. Je trouve plus propre de mettre cette sortie dans ses propres répertoires. Ce que j'ai écrit ci-dessous vérifiera l'existence d'un répertoire et s'y déplacera, ou créera le répertoire puis se déplacera dans celui-ci. Y a-t-il une meilleure façon d'aborder cela?
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()
dans le code R - il défait fondamentalement l'idée d'utiliser un répertoire de travail car vous ne pouvez plus facilement déplacer votre code entre les ordinateurs.
.bat
fichier que l'utilisateur final n'aura jamais à modifier.
setwd
de travailler avec des chemins réseau. Il vous suffit de fournir des chemins pour enregistrer les résultats et de continuer à travailler avec le chemin actuel (celui établi au démarrage de la session R). Ou commencez R avec le répertoire de travail de désir.
out_dir <- "path/to/output/directory"
puis utilisez write.table(file = file.path(out_dir,"table_1.csv"), ...)
. Ou même out_file <- function(fnm) file.path("path/to/output/directory", fnm)
et ensuite write.table(file = out_file("table_1.csv"), ...)
(méthode similaire que j'utilise lorsque je travaille avec des lecteurs réseau).