抑制R中的一些消息但留下其他消息?

Emi*_*ily 8 r

我是一个使用RScaLAPACK的R新手,每当我生成一个新的流程网格时,我都会收到一条消息.

> sla.gridInit(2)
[1] "RScaLAPACK:Process Grid Initialized "
Run Code Online (Sandbox Code Playgroud)

我将把这一行放在一个函数中,我不希望我的函数吐出这条消息.但是 - 我不想只是下沉("/ dev/null")调用,因为据我所知,某些地方可能会出错,然后我会抑制有用的输出.基本上,我希望它在成功时保持沉默,如果它失败则要大声.完成此任务的最佳方法是什么?

任何想法,包括设计考虑,都是受欢迎的.

编辑:sla.gridInit()没有返回任何内容.sla.gridInit的代码只调用print().

编辑:我认为捕获输出最好像抑制由"print"显示的消息而不是R中的"message"或"warning".如果我想用它做什么,至少我会得到输出.

Lar*_*off 18

您可以将此函数包装在其中一个suppress*函数中suppressMessages,suppressWarningssuppressPackageStartupMessages.有关更多详细信息,请参阅这些功能的帮助页面.

  • 谢谢.我用google搜索了抑制消息,发现了另一个这样的问题.结果是suppressMessages无法处理print()的输出.:P http://stackoverflow.com/questions/8797314/suppress-messages-displayed-by-print-instead-of-message-or-warning-in-r (3认同)