1

我目前正在使用sink将我的输出保存到一些文本文件:

sink('out.txt', append=TRUE, split=TRUE)

我想在每个输出/消息中添加它发出的日期时间。sink似乎不支持这一点。实现这一目标的最简单方法是什么?

也就是说,我的预期输出是

[1] "some message"

但我希望它是

2014-12-02 13:12:12 [1] "some message"

或类似的东西。

我更喜欢不需要调整脚本的每一个输出的解决方案。我宁愿只在开始时将其设置在配置/包含文件中,以保持代码清洁和可管理。

4

2 回答 2

6

这是一种在常规输出之后(就在提示下一个命令之前)打印日期和时间的方法。运行代码一次,它将在会话的其余部分继续执行此操作(或直到您将其关闭)。您可以将代码放入 .Rprofile 或 .First 函数中,并且每次都会发生。

> addTaskCallback(function(expr, value, ok, visible) {
+   cat('\n',as.character(Sys.time()), '\n')
+   TRUE
+ })
1 
1 

 2014-12-04 15:02:07 
> 1 + 2
[1] 3

 2014-12-04 15:02:12 
> "some message"
[1] "some message"

 2014-12-04 15:02:18 
> 
于 2014-12-04T22:04:52.410 回答
1

利用paste(Sys.time(),'some message')

所以在上下文中它将是:

sink('out.txt', append=TRUE, split=TRUE)
paste(Sys.time(),'some message')
sink()
于 2014-12-04T21:37:13.687 回答