7

長い計算を実行するいくつかの C++ コードを含む R パッケージを作成しています。C++ コード内では、Rprintf() を使用して情報を出力しています。suppressMessages() を使用して R からの出力を抑制しようとしましたが、これは機能しません。メッセージは R セッション内に表示されたままです。

人々がRprintfの代わりにprintfを使用しているという同様の質問をいくつか見つけましたが、私はすでにRprintfを使用しています。R_ShowMessage() も試してみましたが、これもすぐに表示され、suppressMessages() によって抑制されません。

C++ コードの例を次に示します。

#include <R.h>
extern "C" {
void R_testprint()
{
    Rprintf("Try to suppress me!\n");
    R_ShowMessage("Try to suppress me, too!");
}
}

そして、このコードを呼び出す関数:

test.print <- function(string) {
    res <- .C("R_testprint")
}

現在、次の R コードは出力を抑制しません。

> suppressMessages( test.print() )
Try to suppress me!
Try to suppress me, too!

Rバージョン3.1.0を使用しています

どんな助けにも感謝します!

4

1 に答える 1

1

capture.outputの代わりに使用suppressMessages:

 b <- capture.output( test.print() )

b次に、出力は印刷される代わりに文字ベクトルに格納されます。

于 2016-09-13T06:26:31.440 に答える