我喜欢在窗口中弹出结果,以便更容易查看和查找(例如,当控制台继续滚动时,它们不会丢失)。一种方法是使用sink()
and 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 程序员。谢谢。