R:当用户将函数的输出分配给变量时,如何抑制打印输出?
背景R:当用户将函数的输出分配给变量时,如何抑制打印输出?,r,function,printing,suppressmessage,R,Function,Printing,Suppressmessage,背景 t.test()函数返回打印输出,如下所示: set.seed(2) dat = rnorm(n = 50, mean = 0, sd = 1) t.test(x = dat, mu = 0) One Sample t-test data: dat t = 0.43276, df = 49, p-value = 0.6671 alternative hypothesis: true mean is not equal to 0 95 percent confidence in
t.test()
函数返回打印输出,如下所示:
set.seed(2)
dat = rnorm(n = 50, mean = 0, sd = 1)
t.test(x = dat, mu = 0)
One Sample t-test
data: dat
t = 0.43276, df = 49, p-value = 0.6671
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
-0.2519143 0.3901901
sample estimates:
mean of x
0.06913791
当用户将此函数的输出分配给变量时,打印输出被抑制:
a = t.test(x = dat, mu = 0)
我不确定这是如何实现的。在我自己的函数中,我有一个消息()
,它发生在返回()之前。玩具示例:
toy <- function(i){
if(i > 0){
message("i is greater than 0")
}
return(i)
}
0){
消息(“i大于0”)
}
回报(一)
}
目前,我给用户一个选项,将silent
参数设置为TRUE
或FALSE
,以便使用if()
语句抑制打印输出
问题
当用户将函数输出分配给变量时,是否有方法自动抑制函数的消息/打印输出?类似于不可见()函数将在不需要或不需要输出的许多情况下禁止打印。在第一个示例中,t.test
的奇特输出显示在控制台上的原因类似于为什么1+1
在控制台上显示2
,但x=1+1
不显示。赋值操作通常在技术上会返回作为整个操作结果的赋值(这就是为什么a类似于不可见()函数将在不需要或不需要输出的许多情况下禁止打印。在第一个示例中,t.test
的奇特输出显示在控制台上的原因类似于为什么1+1
在控制台上显示2
,但x=1+1
不显示。分配操作通常不会返回作为整体操作结果的赋值(这就是为什么a