隐藏控制台的输出

时间:2014-10-06 10:26:31

标签: r console summary suppress

我的代码包含一个运行必不可少的命令,但最终会在控制台中显示此命令的结果,我尝试使用suppressWarnings()suppressMessages(),{{1 }和invisible()但所有这些仍然显示结果。

以下是一个示例数据集,问题源自:

sink()

上面代码的最后一行始终显示控制台中的摘要,当报告导致问题自动执行此操作时。有没有人知道可以阻止这种情况发生的命令?

三江源

我已经找到了一种在自动化报告时隐藏它的方法,但如果有人知道如何隐藏它而只是运行代码以使流程更快,那么无论如何这将是非常有用的:)

3 个答案:

答案 0 :(得分:6)

ets对象的摘要方法有点冗长:

> forecast:::summary.ets
function (object, ...) 
{
    print(object)
    cat("\nTraining set error measures:\n")
    print(accuracy(object))
}
<bytecode: 0x161d31c8>
<environment: namespace:forecast>

这是非常糟糕的样式,汇总方法应该返回一个带有类的对象,该类的print方法应该产生输出。

所以你可以在对象上调用accuracy方法:

> accuracy(fstAdi)[,"MAE"]
[1] 1971.468

具有不需要任何输出转移的优点,并且更具可读性。

答案 1 :(得分:4)

sink确实有效,你究竟是如何使用它的?试试例子

M<-c(1111,1222,1333,1444,1555,1666,1777,2223,6654,9867,1123,1456,2436,6875)
fstAdi <- ets(ts(rep(M,length = length(M)), deltat= 1/4, start = c(8,1)), model = "AAA", damped = FALSE, opt.crit = "mae", ic="aic", lower = c(0, 0, 0, 0), upper = c(0.999, 0.999, 0.999, 0.999), bounds = "admissible", restrict = FALSE)
sink(tempfile())
mae11Ad<-summary(fstAdi)[,"MAE"]
sink()

答案 2 :(得分:2)

我知道这可能看起来像是一种糟糕的方式,但这似乎有效

sink( tempfile() )
mae11Ad<-summary(fstAdi)[,"MAE"]