16  Ausgabe in Datei umleiten

Das Umleiten der R-Ausgabe in eine Textdatei ist evtl. ein etwas angestaubtes Verfahren, welches vor allem in Zeiten vor RStudio Anwendung gefunden hat. Heutzutage steht mit quarto eine komfortable Lösung zur Verfügung, hübsche R-Auswertungen z.B. in einem ansprechenden html-Dokument (sprich einer Webseite) zu präsentieren (siehe hierzu Kapitel 20).

Standardmäßig schreibt R seine Ausgaben in das Konsolfenster. Manchmal kann es aber auch vorteilhaft sein, die Ausgaben in eine Datei umzulenken. Dies kann mit der Funktion sink() erreicht werden. Der folgende Befehl leitet alle Ausgaben in die Textdatei Ausgabe.txt im Arbeitsverzeichnis um.

# leite ab jetzt alle Ausgaben in die Datei "Ausgabe.txt" um
sink("Ausgabe.txt")

Soll die Umleitung aufgehoben werden, erfolgt dies mit einem leeren Funktionsaufruf.

# beende die Umleitung 
sink()

So kann man in der Scriptdatei genau festlegen, ab wann die Ausgaben in eine Datei geschrieben werden sollen, und wann nicht. Beachten Sie, dass R die Textdatei immer wieder überschreiben wird, z.B. wenn der sink() Aufruf beendet und dann erneut gestartet wird. Um die Ausgabe an eine bestehende Datei anzuhängen (ohne diese zu überschreiben) muss der Parameter append auf TRUE gesetzt werden.

# hänge ab jetzt alle Ausgaben an die Datei "Ausgabe.txt" an
sink("Ausgabe.txt", append=TRUE)

An dieser Stelle sei auf die Befehle print() und cat() hingewiesen. Wenn Sie die R-Ausgabe in eine Textdatei umleiten, möchten Sie evtl. ebenfalls Kommentare oder anderen Text in die Textdatei schreiben lassen, z.B. bevor Sie Befehle ausführen (oder nachdem).

Der Befehl print() gibt den Text dabei in der R-bekannten Weise aus.

# schreibe mit print() in die Textdatei 
print("Guten Tag, beginnen wir mit der Analyse.")

In die Textdatei wird geschrieben:

[1] "Guten Tag, beginnen wir mit der Analyse."

Mit dem Befehl cat() wird tatsächlich nur der Text ausgegeben (ohne den Positionsanzeiger [1]).

# schreibe mit cat() in die Textdatei 
cat("Guten Tag, beginnen wir mit der Analyse.geht es!")

In die Textdatei wird geschrieben:

Guten Tag, beginnen wir mit der Analyse.
Los geht es!

Der Parameter n gibt an, dass eine neue Zeile beginnen soll.