sink()
関数を使用して、R出力をファイルに変換することができます。シンクがファイルを解放しない
未解決のシンクをすべて閉じる簡単なコマンドがありますか?
以下、私の質問で詳しく説明します。
私のRスクリプトがRスクリプトでsink()
を開きますが、スクリプトがsink()
を閉じる前に発生しているRスクリプトにエラーがあるとします。 Rスクリプトを複数回実行してエラーを修正しようとしています。最後に、すべてのシンクを閉じてコンソールに印刷したいと思います。どうすればいいですか?
最後に、具体性のために、私が直面する問題を説明するためにMWEを提供します。
まず、Rスクリプトsink-closing.R
にエラーがあります。
sink('sink-closing.txt')
foo <- function() {
cat(sprintf('Hello world! My name is %s\n',
a.variable.that.does.not.exist))
}
foo()
sink()
次に、私はバグを見つけて修正しようとして、誤って3回言って、R-スクリプトを複数回source
。
> source('~/Dropbox/cookbook/r-cookbook/sink-closing.R')
Error in sprintf("Hello world! My name is %s\n", a.variable.that.does.not.exist) :
object 'a.variable.that.does.not.exist' not found
ここで、Rスクリプトをデバッグしていて、コンソールに印刷したいとします。以前のシンクを閉じるためにsink()
に何度も呼び出すことができます。 3回呼び出すと、前と同じようにコンソールに最後に印刷することができます。しかし、私はどのくらいのシンクを閉じる必要があるのか分かりますか?
'sink.number'を使用できますか? – mnel