Ich schreibe oft R-Skripte, die viel Ausgabe erzeugen. Ich finde es sauberer, diese Ausgabe in ein eigenes Verzeichnis zu stellen. Was ich unten geschrieben habe, prüft, ob ein Verzeichnis vorhanden ist, und verschiebt es, oder erstellt das Verzeichnis und verschiebt es dann. Gibt es einen besseren Weg, dies zu erreichen?
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-Code verwenden - dies widerspricht im Grunde der Idee, ein Arbeitsverzeichnis zu verwenden, da Sie Ihren Code nicht mehr einfach zwischen Computern verschieben können.
.bat
Datei, die der Endbenutzer niemals ändern muss.
setwd
mit Netzwerkpfaden arbeiten. Sie müssen nur Pfade angeben, um Ergebnisse zu speichern und trotzdem mit dem aktuellen Pfad zu arbeiten (dem Pfad, der beim Start der R-Sitzung festgelegt wurde). Oder starten Sie R mit dem gewünschten Arbeitsverzeichnis.
out_dir <- "path/to/output/directory"
und dann verwenden write.table(file = file.path(out_dir,"table_1.csv"), ...)
. Oder sogar out_file <- function(fnm) file.path("path/to/output/directory", fnm)
und dann write.table(file = out_file("table_1.csv"), ...)
(ähnliche Methode verwende ich bei der Arbeit mit Netzwerklaufwerken).