web-dev-qa-db-ja.com

Rでstderrに出力する方法を教えてください。

stderrRにどのように印刷しますか?

これは、Rscriptで記述されたスクリプトに特に役立ちます。

47
Frank

実際、私にとっては次の作品:

write("prints to stderr", stderr())

write("prints to stdout", stdout())
52
Frank

以下は、Rscriptでのデバッグ/詳細使用のためのより柔軟なバージョンです。要求どおりにstderrに出力するだけでなく、printfが行うように、可変数の引数や型などを渡すこともできます。

v <- function(...) cat(sprintf(...), sep='', file=stderr())

これで、次のようなことができるようになります。

v("name: %s  age: %d\n", name, age)

等.

11
arielf

Stderrに印刷するように印刷機能を構成することはできますか?

リプリー自身から

いいえ。ただし、標準出力の場所はsink()によって制御されるため、同じ効果を得ることができます。 Rは内部的に、どの出力がprint()(これは1つの関数だけでなく数百のメソッドでもある)から何が出力されるかを知りません。

7
Galwegian
message('for writing diagnostic info to standard error')

メッセージは、警告でもエラーでもないにもかかわらず、条件として表される「単純な」診断メッセージを生成するために使用されます。警告やエラーとは異なり、最後の改行はメッセージの一部と見なされ、オプションです。デフォルトのハンドラは、メッセージをstderr()接続に送信します。

3
De Novo