2009-07-10 15 views

答えて

45

私のために実際には、次の作品:

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

write("prints to stdout", stdout()) 
+0

これはLinux上であり、R 2.8.1(Rscriptを使用) – Frank

+1

このコードはWindowsでも動作します。より多くの書式設定を制御するには、writeではなくcatを使用します。 –

+0

FWIW、これは、最初の引数が 'cat'によって出力できる場合にのみ機能するという点で制限されています。 Galwegianが以下に述べるように、 'print'が動作することを要求するクラスがあります。 – Harlan

7

print 関数をstderrに印刷するように設定できますか?

From Ripley himself

ありませんが、標準出力が行くシンク(によって制御 )であるので、あなたは 同じ効果を得ることができます。 R内部で は、 print()からの出力が何であるか分かりません( 関数だけではなく、何百ものメソッド)。

7

ここRscriptでのデバッグ/冗長使用のためのより柔軟なバージョンがあります。質問するとstderrに印刷されるだけでなく、printfのようにさまざまな引数や型などを渡すこともできます。

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

今1は次のようなことを行うことができますなど

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

+0

これは素晴らしいです! ...を理解していない人のために、これを参照してください.. http://stackoverflow.com/questions/3057341/how-to-use-rs-ellipsis-feature-when-writing-your-own-function – myloginid

0
message('for writing diagnostic info to standard error') 

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

関連する問題