sách gpt4 ai đã đi

r - 如何使用函数查看文件中的结果并*应用?

In lại 作者:行者123 更新时间:2023-12-02 06:39:39 25 4
mua khóa gpt4 Nike

我喜欢在窗口中弹出结果,以便更容易查看和查找(例如,它们不会随着控制台继续滚动而丢失)。一种方法是使用 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 , 模型 2), 表(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... )。第二,我不确定如何处理 lề 参数。最后,即使我尝试简单的、人为的示例,我知道一切都已正确设置,这也不起作用, 因此似乎存在根本性的错误。

有谁知道如何简单轻松地处理这种情况?我不是 R 的新手,但我从未被正式教授过它;我以一种特别的方式学习技巧,也就是说,我不是一个非常老练的 R 程序员。谢谢。

1 Câu trả lời

而不是使用 áp dụng 我认为你想要 do.call。确保将其包装在 in 中,因为它在函数内部。

这是一种可能的实现方式:

sinkShow <- function( obj, fun, title='Output', ...) {
file <- tempfile()
args <- c(list(obj),list(...))

capture.output( do.call( fun, args ), file=file )
file.show(file, delete.file=TRUE, title=title)
}

虽然它可能应该重命名,因为我也跳过了使用 sink。我可能会稍微修改一下并将其放入 TeachingDemos 包中。

关于r - 如何使用函数查看文件中的结果并*应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502003/

25 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com