【问题标题】:R Language - Adding timestamp to console outputR 语言 - 向控制台输出添加时间戳
【发布时间】:2014-01-02 16:51:16
【问题描述】:

我正在使用 sink() 来记录运行 R-Scripts,它工作正常。

*R> sink(file = paste(Log_Path, FileName), append = TRUE, type = c("output"), split = TRUE)*

我现在正在进行性能测试,需要了解 R-Script 的某些部分运行了多长时间,而无需添加大量的打印语句。

此解决方案通过 RGui 界面起作用:

R> updatePrompt "));返回(真)}

R> addTaskCallback(updatePrompt)

但是,在 R-Server 中运行时,时间提示不会传播回 sink() 的控制台流。

建议?

我已经探索了 txtStart ,但不确定这是否是我需要的。 是否有不同的包或选项可以设置在 sink() 控制台输出的提示中设置时间戳?

感谢您的帮助...

【问题讨论】:

    标签: r logging timestamp sink


    【解决方案1】:

    提示不是stdout 的一部分,这就是为什么它没有进入接收器的原因。为什么不直接从回调中打印?例如:

    make_timing_fun <- function() {
      time.start <- proc.time()
      function(...) {
        new.time <- proc.time()
        print(new.time - time.start)
        time.start <<- new.time
        TRUE
      }
    }
    addTaskCallback(make_timing_fun()) # note parens used to generate actual function
    

    请注意,这段时间是语句完成之间的时间,所以如果您只是在控制台周围等待,什么也不做,这也是时间的一部分。

    【讨论】:

      【解决方案2】:

      我最初确实尝试过,但我再次尝试了。并收到相同的结果:

      日志文件中保存的控制台输出片段:

      > 开始日期

      > input_data3

      > 停止日期

      .

      希望如此:

      2014-01-03 09:07:57 > 开始日期

      2014-01-03 09:07:57 > input_data3

      2014-01-03 09:07:57 > 停止日期

      .

      【讨论】:

      • 这是对另一个答案的回复吗?
      • 这是对以下问题的回答:“为什么不直接从回调中打印?”
      • 这不属于答案。如果需要,可以将其作为编辑添加到问题的末尾,但这不是原始问题的答案。
      • @HashtagKitty 请将此信息添加到您的问题中(单击“编辑”按钮),删除此答案,并评论 BrodieG 的答案,让他/她知道您已更新您的问题。
      • 如何增加毫秒精度?
      猜你喜欢
      • 2021-01-20
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 2016-06-29
      相关资源
      最近更新 更多