我正在使用print(), cat() and message()
函数向R控制台编写一些文本。我希望将控制台输出收集到一个文本文件中,因此我将代码夹在一对sink()
函数之间。最终代码如下:
sink("output_filename.txt")
print("some text with print function")
cat("some text with cat function")
message("some text with message function")
sink()
运行此代码时,在message's output writes to console
期间按预期方式进行打印和分类,并且不输出文本文件。为什么会发生这种情况,我该如何解决?我宁愿不要用替代项替换消息功能。
答案 0 :(得分:1)
就像注释中已经提到的jogo一样,message()
发送到stdeer而不是stdout
。您可以使用sink(stdout(), type = "message")
sink("output_filename.txt")
sink(stdout(), type = "message")
print("some text with print function")
cat("some text with cat function\n")
message("some text with message function")
sink()
来自sink()
的{{3}}:
正常R输出(至连接标准输出)被默认类型转移 =“输出”。仅提示和(大多数)消息继续出现在控制台上。发送到stderr()的消息(包括来自message, 警告和停止)可以通过接收器(类型=“消息”)转移(请参阅 下面)。
您还可以在完成后将其更改回去,因为警告和停止也以这种方式更改为stdout