我正在编写一个 R 包,其中包含一些运行冗长计算的 C++ 代码。在 C++ 代码中,我使用 Rprintf() 来输出信息。我尝试使用 suppressMessages() 抑制 R 的输出,但这不起作用,消息仍然出现在 R 会话中。
我发现了一些类似的问题,人们使用 printf 而不是 Rprintf,但我已经在使用 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
我很感激任何帮助!