2

私のコードには、実行に不可欠なコマンドが含まれていますが、このコマンドの結果がコンソールにsuppressWarnings()表示さsuppressMessages()れてしまいます。invisible()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)
mae11Ad<-summary(fstAdi)[,"MAE"]

上記のコードの最後の行は常にコンソールに概要を表示しますが、これを自動化すると問題が発生します。これを停止できるコマンドを知っている人はいますか?

ありがとうございました

レポートの自動化中に非表示にする方法を見つけましたが、コードを実行してプロセスを高速化するだけで非表示にする方法を誰かが知っていれば、とにかくそれは本当に役に立ちます:)

4

3 に答える 3

6

オブジェクトのサマリー メソッドetsは少し冗長です。

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

これはかなり悪いスタイルです。summary メソッドはクラスを持つオブジェクトを返し、そのクラスの print メソッドは出力を生成する必要があります。

accuracyしたがって、オブジェクトでメソッドを呼び出すことができます。

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

これには、出力の転用が不要で、より読みやすいという利点があります。

于 2014-10-06T11:14:44.757 に答える
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()
于 2014-10-06T10:49:15.067 に答える
2

おそらく悪いスタイルのアプローチのように見えることは知っていますが、これはうまくいくようです

sink( tempfile() )
mae11Ad<-summary(fstAdi)[,"MAE"]
于 2014-10-06T10:55:25.893 に答える