这真的开始让我烦恼......我尝试了几种方法,但似乎都不起作用
我正在从一个函数运行安装,该函数会生成许多我想抑制的不必要的消息,但我尝试执行此操作的所有方法都不起作用。
我试图抑制的代码是:install_github('ROAUth', 'duncantl')
,它需要包devtools
预先加载。
无论如何,我尝试过invisible
, capture.output
and sink
,这些都不起作用...或者也许我没有正确使用它们...无论如何...有什么想法吗?
suppressMessages
将关闭一些消息(那些通过调用打印的消息)message
), 但不是所有的。
其余的消息来自于一个被拒绝的电话R CMD INSTALL
通过system2
功能。我认为这是因为这是你尝试过的所有常见的事情(sink
, capture.output
等)不工作。请注意,system2
功能自带stderr
and stdout
如果转向的话FALSE
会关闭所有这些消息。很遗憾,system2
uses stdout = ""
and stderr = ""
默认情况下,似乎无法通过devtools
包裹。
因此,我设法在没有任何消息的情况下运行的一种方法是暂时覆盖system2
在基础环境中运行。它不是特别优雅,但它有效:
# store a copy of system2
assign("system2.default", base::system2, baseenv())
# create a quiet version of system2
assign("system2.quiet", function(...)system2.default(..., stdout = FALSE,
stderr = FALSE), baseenv())
# overwrite system2 with the quiet version
assignInNamespace("system2", system2.quiet, "base")
# this is now message-free:
res <- eval(suppressMessages(install_github('ROAUth', 'duncantl')))
# reset system2 to its original version
assignInNamespace("system2", system2.default, "base")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)