HOWTO · R
Ein R-Skript über die Kommandozeile ausführen
Erfahren Sie, wie Sie ein R-Skript mit Rscript im Terminal oder in der Eingabeaufforderung ausführen, Argumente übergeben, einen Cronjob planen und Änderungen mit Git nachverfolgen.
Auf dieser Seite
Um ein R-Skript in einem Terminal oder einer Eingabeaufforderung auszuführen, speichern Sie den Code in einer Datei und starten Sie ihn mit Rscript path/to/script.R. R muss installiert sein, und Ihre Shell muss Rscript über PATH finden können. Andernfalls verwenden Sie den vollständigen Installationspfad der ausführbaren Datei. Dieses Vorgehen eignet sich für wiederholbare Analysen, Skripte mit Eingabewerten und geplante Aufgaben.
Was ist Rscript?
Rscript ist das Kommandozeilenprogramm, mit dem Sie R-Code aus einer Skriptdatei oder einem direkt übergebenen Befehl ausführen. Es eignet sich für nicht interaktive Aufgaben: Die Anweisungen stehen in einer Datei oder einem Befehl, und der Prozess endet, sobald die Aufgabe abgeschlossen ist. In einer interaktiven R-Sitzung können Sie dagegen Befehle eingeben und die Ergebnisse nach und nach prüfen.
Rscript ist in der R-Installation enthalten. Öffnen Sie unter macOS oder Linux ein Terminal beziehungsweise unter Windows die Eingabeaufforderung oder PowerShell. Prüfen Sie mit Rscript --version, ob der Befehl verfügbar ist. Meldet die Shell, dass sie den Befehl nicht findet, installieren Sie R oder suchen Sie die mit R installierte ausführbare Datei und verwenden Sie deren vollständigen Pfad. Die Installationsverzeichnisse unterscheiden sich je nach Betriebssystem und Installation. Übernehmen Sie daher keinen versionsabhängigen Pfad von einem anderen Computer.
Ein R-Skript mit Rscript ausführen
Erstellen Sie eine Datei namens mean.R mit diesem kurzen Beispiel. Es verwendet übergebene Zahlen, sofern Sie welche angeben, und andernfalls eine festgelegte Standardmenge. Sie können die Datei also wie gezeigt ausführen oder für andere Werte anpassen.
args <- commandArgs(trailingOnly = TRUE)
numbers <- if (length(args) > 0) as.numeric(args) else c(1, 2, 3, 4, 5)
cat("Mean: ", mean(numbers), "\n", sep = "")
Bei der Standardeingabe verwendet der Code die Zahlen 1 bis 5. Bei Betrachtung des Codes ist zu erwarten, dass er Mean: 3 ausgibt. Das Beispiel wurde nicht zur Laufzeit überprüft. Das unveränderte Beispiel zeigt die Beschriftung „Mean“ auf Englisch.
Führen Sie das Skript im Verzeichnis, in dem die Datei liegt, mit Rscript mean.R aus. Um es aus einem anderen Verzeichnis zu starten, geben Sie den Skriptpfad an, zum Beispiel mit Rscript /path/to/mean.R. Unter Windows setzen Sie einen Pfad mit Leerzeichen in Anführungszeichen, etwa Rscript "C:/Users/Ada/My Scripts/mean.R"; verwenden Sie das Pfadformat, das die geöffnete Shell akzeptiert. Wenn Rscript nicht in PATH enthalten ist, ersetzen Sie den Befehl durch den vollständigen Pfad zur ausführbaren Datei und übergeben Sie den Skriptpfad weiterhin als separates Argument.
Für einen kurzen Ausdruck, für den Sie keine Datei speichern müssen, verwenden Sie die Option -e in einer POSIX-ähnlichen Shell oder in PowerShell, zum Beispiel Rscript -e 'mean(iris$Sepal.Length)'. Diese Schreibweise mit einfachen Anführungszeichen eignet sich nicht für die Windows-Eingabeaufforderung, da diese einfache Anführungszeichen als normale Zeichen behandelt. Verwenden Sie dort stattdessen das Beispiel mit der gespeicherten Skriptdatei. Der Datensatz iris gehört zu einer Standardinstallation von R. Mit --help und --version können Sie die Hilfe zum Befehl beziehungsweise Versionsinformationen anfordern; --verbose sorgt für ausführlichere Befehlsausgaben. Diese Optionen helfen beim Prüfen des Aufrufs oder beim Eingrenzen von Problemen. -e beginnt mit einem Bindestrich, daher fangen nicht alle Optionen mit zwei Bindestrichen an.
Argumente an ein R-Skript übergeben
Ein Skript kann Werte nach dem Dateinamen mit commandArgs(trailingOnly = TRUE) einlesen. Das obige Beispiel wandelt jedes übergebene Argument in eine Zahl um und berechnet daraus den Mittelwert. Mit Rscript mean.R 10 20 30 übergeben Sie beispielsweise drei separate Werte. Enthält eine Eingabe Leerzeichen, setzen Sie sie in der Shell in Anführungszeichen, damit sie als ein Argument ankommt. Geben Sie das erwartete Eingabeformat des Skripts klar an und passen Sie die Umwandlung und Prüfung an, wenn Sie andere Daten als Zahlen verwenden.
R-Skripte mit Cron planen
Auf Unix-ähnlichen Systemen kann cron ein Skript nach einem Zeitplan starten. Bearbeiten Sie die Crontab Ihres Benutzers mit crontab -e und fügen Sie einen Eintrag wie 0 2 * * * /usr/bin/Rscript /path/to/report.R hinzu, um gemäß der Cron-Konfiguration des Computers einen täglichen Lauf um 2:00 Uhr anzufordern. Die Pfade zur ausführbaren Datei und zum Skript sind Beispiele. Verwenden Sie die Pfade des Computers, auf dem der Auftrag ausgeführt wird.
Geplante Aufgaben starten möglicherweise in einem anderen Arbeitsverzeichnis und mit einer anderen Umgebung als Ihre interaktive Shell. Verwenden Sie absolute Pfade für die ausführbare Datei, das Skript und Ein- oder Ausgabedateien. Sorgen Sie außerdem dafür, dass Ausgaben oder Fehlermeldungen des Auftrags erfasst werden, wenn Sie geplante Läufe untersuchen möchten. Cron ist eine Planungsoption für Unix-ähnliche Systeme; unter Windows können Sie stattdessen die Aufgabenplanung verwenden.
R mit Git versionieren
Mit Git können Sie Änderungen an R-Skripten und zugehörigen Projektdateien nachverfolgen. So lassen sich Bearbeitungen leichter prüfen oder frühere Versionen wiederherstellen. Git ist optional und nicht erforderlich, um ein Skript mit Rscript auszuführen. Initialisieren Sie in einem Projektverzeichnis mit git init ein Repository, fügen Sie die zu versionierenden Dateien mit git add hinzu und halten Sie einen Stand mit git commit fest. Prüfen Sie vor dem Commit, welche Änderungen übernommen werden. Nehmen Sie erzeugte Daten oder Zugangsdaten nur dann in die Projektchronik auf, wenn sie dort hingehören.
Fazit
Speichern Sie Ihren Code in einer R-Datei und führen Sie ihn anschließend mit Rscript und dem Skriptpfad aus. Prüfen Sie, ob R installiert ist und Ihre Shell die ausführbare Datei findet. Setzen Sie Pfade bei Bedarf in Anführungszeichen und übergeben Sie Eingabewerte nach dem Dateinamen. Für wiederkehrende Aufgaben verwenden Sie einen Zeitplan mit Pfaden, die zur jeweiligen Umgebung passen. Wenn Sie Änderungen an Skripten nachverfolgen möchten, nutzen Sie Git.
FAQ
-
Wie installiere ich R und Rscript?
Installieren Sie R nach den Anweisungen für Ihr Betriebssystem.Rscriptist in R enthalten; für diesen Ablauf müssen Sie es nicht separat installieren. -
Kann ich ein R-Skript unter Windows ausführen?
Ja. Verwenden Sie die Eingabeaufforderung oder PowerShell und führen SieRscript script.Raus, wenn die ausführbare Datei überPATHverfügbar ist. Andernfalls rufen Sie die installierte Datei über ihren vollständigen Pfad auf. Setzen Sie Pfade mit Leerzeichen entsprechend den Anführungszeichenregeln Ihrer Shell in Anführungszeichen. -
Was ist der Unterschied zwischen Rscript und R?
Rscriptist dafür vorgesehen, ein Skript oder einen Ausdruck über die Kommandozeile auszuführen. Der BefehlRstartet üblicherweise eine interaktive Sitzung, in der Sie Befehle eingeben und die Ergebnisse während der Arbeit prüfen können. -
Wie prüfe ich die installierte Rscript-Version?
Führen Sie in Ihrem Terminal oder in der EingabeaufforderungRscript --versionaus. Der Befehl muss überPATHverfügbar sein; andernfalls rufen Sie ihn über seinen vollständigen Pfad auf. -
Wie führe ich mehrere R-Skripte nacheinander aus?
Verbinden Sie in einer Unix-ähnlichen Shell die Befehle mit&&, zum BeispielRscript first.R && Rscript second.R. Der zweite Befehl wird nur ausgeführt, wenn der erste erfolgreich ist. Für längere Abläufe können Sie die Aufrufe in ein Shell-Skript oder einen anderen für Ihr System geeigneten Zeitplan aufnehmen.