結果をウィンドウに表示して、見やすく、見つけやすくするのが好きです(たとえば、コンソールがスクロールし続けても、結果が失われることはありません)。これを行う1つの方法は、とを使用することsink()
ですfile.show()
。例えば:
y <- rnorm(100); x <- rnorm(100); mod <- lm(y~x)
sink("tempSink", type="output")
summary(mod)
sink()
file.show("tempSink", delete.file=T, title="Model summary")
summary(data.frame)
私は通常、上記のようにモデルの適合を調べるためにこれを行いますが、: 、、などanova(model1, model2)
、他のさまざまな関数やオブジェクトについても行いますtable(factor1, factor2)
。これらは一般的ですが、他の状況も発生する可能性があります。ここでのポイントは、関数とオブジェクトの両方の性質が異なる可能性があるということです。
上記のすべてを毎回入力するのは少し面倒です。呼び出すことができるより単純な関数を作成したいと思います。次のようなものがいいでしょう。
sinkShow <- function(obj, fun, title="output") {
sink("tempSink", type="output")
apply(obj, ?, fun)
sink()
file.show("tempSink", delete.file=T, title=title)
}
明らかに、これは機能しません。いくつかの問題があります。まず、条件付き実行のリストがなくても、間違ったタイプのオブジェクトまたは関数でクラッシュしないように、これをどのように行いますか(つまり、if(is.list(obj) { lapply...
)。第二に、私はmargin
引数を処理する方法がわかりません。最後に、すべてが適切に設定されていることがわかっている単純で工夫された例を試しても、これは機能しないため、根本的に何かが間違っているようです。
そのような状況を簡単かつ簡単に処理する方法を知っている人はいますか?私はRに不慣れではありませんが、正式に教えられたことはありません。私はアドホックな方法でトリックを習得しました。つまり、私はあまり洗練されたRプログラマーではありません。ありがとう。