我正在编写一个带有一些运行时间长的计算的R包,其中包含C++代码。在C++代码中,我使用Rprintf()输出信息。我尝试使用suppressMessages()来抑制R中的输出,但这并不起作用,消息仍会出现在R会话中。
我发现了一些类似的问题,人们在使用printf时遇到了类似情况,但我已经在使用Rprintf了。我还尝试过R_ShowMessage(),但它也会立即显示且无法被suppressMessages()抑制。
以下是一些示例C ++代码:
现在,以下的R代码不会抑制输出:
我发现了一些类似的问题,人们在使用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
非常感谢任何帮助!