在 R 中打印或捕获多个对象

Posted

技术标签:

【中文标题】在 R 中打印或捕获多个对象【英文标题】:Print or capturing multiple objects in R 【发布时间】:2013-08-26 01:10:27 【问题描述】:

我在 R 脚本中有多个回归,并希望将回归摘要附加到单个文本文件输出中。我知道我可以使用以下代码为一个回归摘要执行此操作,但我如何为多个执行此操作?

rpt1 <- summary(fit)capture.output(rpt1, file = "results.txt")

我不希望在同一个脚本中多次使用它(对于 rpt1、rpt2 等),因此每个结果都有单独的文本文件。我确信这很容易,但我仍在学习 R 绳索。有什么想法吗?

【问题讨论】:

您可以将结果作为列表传递 capture.output 中还有一个 append 参数。 【参考方案1】:

您可以将结果存储为列表,然后使用capture.output

fit1<-lm(mpg~cyl,data=mtcars)
fit2<-lm(mpg~cyl+disp,data=mtcars)
myresult<-list(fit1,fit2)
capture.output(myresult, file = "results.txt")

【讨论】:

完美。我还尝试了@joran 的使用append 参数的建议,它也很有效。谢谢大家。【参考方案2】:

如果您想将多个输出发送到一个文件,请查看sink 函数,它会将所有输出重定向到一个文件,直到您再次调用sinkcapture.output 函数实际上使用了sink

您可能还对 TeachingDemos 包中的 txtStart 函数(和朋友)感兴趣,它还将包含散布在输出中的命令并提供更多输出格式选项。

最终,您可能会想要研究 knitr 包,以了解批量运行一组命令并很好地捕获所有输出的方法,并且格式化(并记录)。

【讨论】:

以上是关于在 R 中打印或捕获多个对象的主要内容,如果未能解决你的问题,请参考以下文章

R 无法尝试捕获多个错误

从 R 中的系统调用捕获退出状态和输出

未捕获的 SyntaxError:新行的无效或意外令牌

抑制但捕获 R 中的警告

OpenCV 捕获多个 RTSP 流 - Python

如何使用 Python 在日志文件中复制/捕获标准输出