Lokalisieren Sie R-Skript- und Datendateien, ohne das Arbeitsverzeichnis zu ändern
Möglicherweise möchten wir häufig den Speicherort der aktuellen Datei als Arbeitsverzeichnis von R festlegen, da es uns ermöglicht, relative Pfade zu verwenden, um auf benötigte R-Skripte und Datendateien zu verweisen. Das Ändern des Arbeitsverzeichnisses ist jedoch keine ideale Lösung.
Dieser Artikel zeigt, wie Sie ein R Studio-Projekt, das here
-Paket und die Funktion file.path()
kombinieren, damit R für ein Projekt benötigte Dateien finden kann, ohne das Arbeitsverzeichnis manuell an den Speicherort des aktuellen Skripts zu ändern.
R Studio-Projekte
Wenn wir ein R-Projekt mit R Studio erstellen, wird eine .Rproj
-Datei im angegebenen Ordner erstellt.
Wenn wir eine .Rproj
-Datei öffnen:
- Wir erhalten eine neue Instanz von R Studio mit einem Arbeitsbereich, der diesem Projekt gewidmet ist.
- Der Ordner, in dem sich die
.Rproj
befindet, wird zum Arbeitsverzeichnis gemacht.
Eine .Rmd
-Datei in einem Unterordner dieses Projektordners ändert jedoch vorübergehend das Arbeitsverzeichnis in ihren Ordner, wenn sie gestrickt
wird. Das unten erwähnte here
-Paket löst dieses Problem.
die Funktion file.path()
Die Basis-R-Funktion file.path()
ermöglicht es uns, den Pfad zu den erforderlichen Dateien plattformunabhängig zu konstruieren.
Wenn sich beispielsweise die Datei mydata.csv
in einem Unterordner namens datafiles
befindet, lautet die Syntax:
file.path("datafiles", "mydata.csv")
Die Funktion gibt den Pfad mit dem richtigen Trennzeichen für das Betriebssystem zurück, auf dem das Skript mit dem Code ausgeführt wird.
das here
-Paket
Bei Verwendung in einem R-Projekt ermöglicht uns das here
-Paket, den Pfad zu allen Dateien als relative Pfade aus dem Hauptprojektordner zu schreiben.
Dies wird erreicht, indem nach der .Rproj
-Datei relativ zum Speicherort der aktuellen Datei gesucht wird.
Es muss installiert werden, um das here
-Paket verwenden zu können. Wenn Dateien von verschiedenen Benutzern oder Computern gemeinsam genutzt werden, müssen sie auf allen betroffenen Computern installiert werden.
Verwenden Sie das here
-Paket in jedem Skript oder .Rmd
-Dokument wie folgt:
-
Rufen Sie zuerst
here::i_am()
mit dem Pfad zur aktuellen Datei relativ zum Hauptprojektordner auf, der die Datei.Rproj
enthält. Verwenden Sie die Funktionfile.path()
, um diesen Pfad zu codieren. -
Laden Sie das
here
-Paket mitlibrary(here)
. -
Konstruieren Sie mithilfe der Funktion
here()
relative Pfade zu den erforderlichen Dateien aus dem Hauptprojektordner. Die Syntax ist ähnlich wiefile.path()
.here()
nutzt jedoch sein Wissen über den Speicherort der.Rproj
-Datei, um R beim Auffinden der referenzierten Dateien zu helfen.
Beispiel:
# Suppose the folder structure of the project is as follows.
ProjFolder
|___Scripts
| |__MyScript.R
|
|___Data
| |__MyData.csv
|
|__Documents
|__MyRMarkdown.Rmd
# In .R files. The same for .Rmd files.
# First, give the path of this script file relative to the main project folder.
here::i_am(file.path("Scripts", "MyScript.R"))
# Then, load the here package.
library(here)
# Subsequently, use the here() function whenever a path is written.
# Use a relative path from the main project folder.
myvar = read.csv2(here("Data", "MyData.csv"))
der vorgeschlagene Arbeitsablauf
- Starten Sie das Projekt, indem Sie die Datei
.Rproj
öffnen. Dadurch wird das Arbeitsverzeichnis auf den Ordner festgelegt, der diese Datei enthält. - Öffnen Sie die erforderlichen Dateien über das Dateifenster in R Studio. Dadurch wird sichergestellt, dass sie in dieser bestimmten Instanz von R Studio mit dem richtigen Arbeitsverzeichnis geöffnet werden.
- Befolgen Sie in Skripten und
.Rmd
-Dateien die Schritte im vorherigen Abschnitt, um dashere
-Paket zu verwenden.
Der gesamte Projektordner kann sich an einem beliebigen Ort auf dem Computer befinden. Es kann als Ganzes geteilt und auf jedem anderen Computer verwendet werden, der über die erforderliche Software verfügt.
Wenn die Funktion here()
mit anderen Paketen in Konflikt gerät, verwenden Sie die Syntax here::here()
.
Verweise
Einzelheiten zu R Studio-Projekten finden Sie unter R für Data Science.
Details zum here
-Paket finden Sie zuerst im Blogbeitrag: Warum sollte ich das here-Paket verwenden, wenn ich bereits Projekte verwende?
. Dann lesen Sie die Vignette von hier
.