Ich weiß, dass die sink()
Funktion verwendet werden kann, um R-Ausgabe in eine Datei z.Sink nicht Datei
sink('sink-closing.txt')
cat('Hello world!')
sink()
Gibt es einen einfachen Befehl, um alle ausstehenden Senken zu schließen?
Im Folgenden erkläre ich auf meine Frage.
Angenommen, mein R-Skript öffnet eine sink()
in einem R-Skript, aber es gibt einen Fehler im R-Skript, der auftritt, bevor das Skript die sink()
schließt. Ich kann das R-Skript mehrmals ausführen, um den Fehler zu beheben. Zum Schluss möchte ich alle Senken schließen und auf die Konsole drucken. Wie mache ich das?
Schließlich, im Interesse der Konkretheit, biete ich eine MWE, um das Problem zu veranschaulichen, dem ich gegenüberstehe.
Zuerst schreibe ich ein R-Skript sink-closing.R
, das einen Fehler enthält.
sink('sink-closing.txt')
foo <- function() {
cat(sprintf('Hello world! My name is %s\n',
a.variable.that.does.not.exist))
}
foo()
sink()
Als nächstes I source
die R-Skript mehrmals, etwa 3-mal versehentlich als ich versuche, den Fehler zu finden und zu beheben.
Nehmen wir nun an, dass ich das R-Skript debuggen und auf der Konsole drucken möchte. Ich kann sink()
mehrere Male anrufen, um die früheren Senken zu schließen. Wenn ich es dreimal anrufe, kann ich endlich wie vorher auf die Konsole drucken. Aber woher weiß ich, wie viele Waschbecken ich schließen muss?
Können Sie 'sink.number' verwenden? – mnel