Wie man eine Protokolldatei einer R-Sitzung erstellt, die Befehle, Ergebnisse und Warnungen / Meldungen / Fehler von der R-Konsole kombiniert

8

Ich möchte eine Protokolldatei erstellen, die alle Befehle ( stdin ), Ergebnisse ( stdout ) und Fehler / Warnungen / Meldungen () protokolliert stderr ) in der R-Konsole.

Ich bin mir bewusst, dass es viele Logging-Pakete gibt und ich probierte mehrere wie TeachingDemos (scheint stderr komplett zu ignorieren) oder R2HTML (scheint Nachrichten zu ignorieren), aber keiner von ihnen scheint alles zu beinhalten von stderr .

Nur knitr und markdown scheinen in der Lage zu sein, alles in eine einzige Datei aufzunehmen. Aber mit dieser Problemumgehung muss ich R-Skripte schreiben und ich kann nicht frei Befehle in der Konsole schreiben. Außerdem kann ich den Befehl knitr oder markdown nicht in das gleiche R-Skript einfügen (was natürlich ein kleines Problem ist).

Hier ist ein Beispiel :

%Vor%     
non-numeric_argument 23.01.2014, 11:50
quelle

2 Antworten

7

Wenn Sie R von einem Unix / Linux / Mac / etc ausführen. Terminal, können Sie tun:

%Vor%

Unter Windows können Sie das Skript in

ausführen %Vor%

und Ihr Ergebnis wird im selben Ordner wie yourscript.out

angezeigt     
flodel 23.01.2014, 12:17
quelle
1

Bei Uniques habe ich oft das folgende Code-Idiom mit bash verwendet:

%Vor%

Die "2 & gt; & amp; 1" sagt stderr zu nehmen und es zu stdout umzuleiten, was dann zu "tee" piped wird. Ich werde mit dieser und anderen Möglichkeiten der Protokollierung einer R-Sitzung experimentieren.

Ein weiterer Unix-Trick ist der Befehl "script", der eine Subshell startet, deren I / O (im Prinzip alles, was Sie eingeben und sehen) in der angegebenen Datei protokolliert wird. Beenden Sie dann die Shell, um das Skript zu beenden. Erneut zu experimentieren. Da "Senke" in R vorkommt, werde ich das zuerst versuchen.

Übrigens, ich habe diese Tricks mit Solaris gemacht, aber sie funktionieren mit dem gleichen Cygwin, dem Unix-Emulator unter Windows. Vor langer Zeit stellte ich fest, dass meine Cygwin-Bilder aktueller waren als die institutionellen Installationen von Solaris, weil die Administratoren viel mehr Verantwortung hatten, als nur die Solaris auf dem neuesten Stand zu halten. Wohlgemerkt, die institutionellen Maschinen waren mächtiger, und obwohl Cygwin viel bequemer war, erfüllte meine persönliche Maschine einfach nicht die Anforderungen.

NACHMITTAG:

Ich nahm Beispielcode von Seite 99 von Shumways Zeitreihenanalyse und seine Anwendungen mit R Beispielen . Hier sind die Inhalte einer Testdatei palette.R:

%Vor%

Ich habe es aufgerufen mit:

Skript & lt; palette.R

Er erfasst die Befehle von palette.R und die entsprechende Ausgabe. Also, scheint für den Batch-Modus verwendbar. Für den interaktiven Modus werde ich mit meinem ursprünglichen Plan gehen und Senke verwenden.

    
user36800 28.07.2015 04:35
quelle

Tags und Links