【问题标题】:Is it possible to retrieve the console output history in RStudio?是否可以在 RStudio 中检索控制台输出历史记录?
【发布时间】:2021-05-24 08:37:27
【问题描述】:

标题几乎说明了一切。

我让一个进程在一夜之间运行,并使用tictoc 包来测量它的持续时间。

当我今天早上回来查看时,我读取了输出,然后像往常一样清除了控制台(肌肉记忆)以保持整洁。

即使我记得持续时间,我还是想与同事分享输出的详细信息,而不是再次运行该过程(花了很长时间),我想知道是否可以只检索控制台。

Stack Overflow 上似乎没有任何类似的问题,所以我决定提出一个。

我知道可以检索自己的历史记录 (history()),但这仅关注输入,而我正在寻找输出

更多细节:

zx8754's answer 很好,虽然它只适用于以前的结果,而我需要一些看起来更远的东西。

自从清除控制台后,我已经运行了几个命令,这意味着.Last.value 在这种情况下将不起作用。有没有比最近的输出回溯的方法?

【问题讨论】:

  • 我没有,所以我试过了,它只会保存我的输入。我再次尝试运行print("HELLO"),然后运行savehistory(.RHistory),但没有保存输出 - 只有输入命令。

标签: r rstudio


【解决方案1】:

看起来.Last.value 有效,例如:

library(tictoc)

## Timing multiple steps
tic("step 1")
print("Do something...")
Sys.sleep(1)
toc()
# step 1: 1.02 sec elapsed

# Press Ctrl+L to clear console, then
.Last.value
# $tic
# elapsed 
# 239407.9 
# 
# $toc
# elapsed 
# 239408.9 
# 
# $msg
# [1] "step 1"

打印出来的不一样,但如果需要我们可以重新构造:

x <- .Last.value
paste0(x$msg, ": ", prettyNum(x$toc - x$tic), " sec elapsed")
# [1] "step 1: 1.02 sec elapsed"

【讨论】:

  • 这是一个很好的解决方案,虽然它只适用于以前的值,而我在清除结果后运行了几个命令。我将更新问题以反映这一点,但是否有可能比以前的结果更进一步回顾的方法?
猜你喜欢
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 2013-01-17
  • 2012-11-30
相关资源
最近更新 更多