在 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
函数,它会将所有输出重定向到一个文件,直到您再次调用sink
。 capture.output
函数实际上使用了sink
。
您可能还对 TeachingDemos 包中的 txtStart
函数(和朋友)感兴趣,它还将包含散布在输出中的命令并提供更多输出格式选项。
最终,您可能会想要研究 knitr 包,以了解批量运行一组命令并很好地捕获所有输出的方法,并且格式化(并记录)。
【讨论】:
以上是关于在 R 中打印或捕获多个对象的主要内容,如果未能解决你的问题,请参考以下文章