为什么不是';R函数sink()是否将摘要输出写入结果文件?

为什么不是';R函数sink()是否将摘要输出写入结果文件?,r,sink,R,Sink,编辑:这个问题在这一点上似乎是不可复制的,但我已经将这个问题更新为一个更简明的例子,说明了行为是什么,以防任何人遇到类似的问题 sink("res4.txt") cat("Here are my results:\n") summary(mtcars) sink() 最后一行中的sink(“~/R/res4.txt”)函数将存储“这是我的结果”行,但不存储文件中的摘要(res4)行 键入summary(mtcars)会生成正确的数据集,我

编辑:这个问题在这一点上似乎是不可复制的,但我已经将这个问题更新为一个更简明的例子,说明了行为是什么,以防任何人遇到类似的问题

sink("res4.txt")
    cat("Here are my results:\n")
    summary(mtcars)
sink()
最后一行中的
sink(“~/R/res4.txt”)
函数将存储
“这是我的结果”
行,但不存储
文件中的
摘要(res4)


键入
summary(mtcars)
会生成正确的数据集,我不明白为什么不包括
summary(mtcars)
的输出。

有多少个摘要函数就有多少个回归过程,其中许多使用
cat
的函数不会进入返回的值。我的建议是使用cat和capture.output,它们都有一个
file
目标参数和一个
append
选项:

cat("Here are my results:\n", file="~/R/res4.txt")
capture.output( summary(res4), file"~/R/res4.txt", append=TRUE)

摘要函数的数量与回归过程的数量一样多,其中许多函数使用的是
cat
,而不会进入返回的值中。我的建议是使用cat和capture.output,它们都有一个
file
目标参数和一个
append
选项:

cat("Here are my results:\n", file="~/R/res4.txt")
capture.output( summary(res4), file"~/R/res4.txt", append=TRUE)

您是否以非交互方式运行此操作?你的意思是让
打印(摘要(res4))
?@MrFlick谢谢,这很有效。我没有意识到我需要
print
功能,因为
summary(res4)
在控制台中生成相同的输出。您是否以非交互方式运行此功能?你的意思是让
打印(摘要(res4))
?@MrFlick谢谢,这很有效。我没有意识到我需要
print
函数,因为
summary(res4)
在控制台中生成相同的输出。Greate,“capture.output”函数避免了与bat模式和Rnoweb中的“sink”相关的问题!更重要的是,“capture.output”函数避免了bat模式和Rnoweb模式下与“sink”相关的问题!