我正在使用compute.es
包(http://cran.r-project.org/web/packages/compute.es/compute.es.pdf)来计算效果大小。现在,当使用这个包中的一个函数时,即使你将它分配给一个向量,也会打印结果,我想要压制它。
例如,
library("compute.es")
mes(5,5,5,5,5,5,level=95,dig=2,id=NULL,data=NULL)
打印了很多信息。通过capture.output
这样使用
library("compute.es")
capture.output(mes(5,5,5,5,5,5,level=95,dig=2,id=NULL,data=NULL))
很多都被压制了,但不是全部。我对sink()
(打破整个功能)或invisible()
也没有好运。
如何禁止此功能的所有打印信息?
答案 0 :(得分:3)
这个功能真的是双极的。有些内容使用cat
打印,其他内容使用message
打印。除了您尝试过的内容之外,您还可以尝试suppressMessages
。
这对我有用。
x <- capture.output(suppressMessages(mes(5,5,5,5,5,5,level=95,dig=2,id=NULL,data=NULL)))
或者,您可以破解该功能(使用源代码!)并删除所有cat
和message
语句。另一种方法是向函数添加另一个参数(如verbose
),并通过将消息放入if
子句中来打开/关闭消息。 E.g。
if (!is.null(data)) {
if (verbose) {
cat("\n")
message(" EFFECT SIZE CALCULATION (FOR VECTOR INPUT)")
cat("\n")
}
...
答案 1 :(得分:3)
compute.es
包的0.2-4版本有一个'详细'参数,例如:
require(compute.es) # VERSION => 0.2-4
des(.3, 30, 30, verbose=FALSE) # WILL SUPPRESS PRINTING TO CONSOLE