【问题标题】:Check when R session have been started?检查 R 会话何时开始?
【发布时间】:2016-05-23 11:58:12
【问题描述】:

有没有办法检查 R 会话何时开始?在interactive mode 中,在batch mode 中不需要。

【问题讨论】:

  • 你需要在 R 中检查这个吗?
  • @docendo discimus 会很棒,但我想这是不可能的,所以不是,但让我们等一下,也许会有答案
  • 你的意思是会话什么时候开始的?
  • 你的用例是什么?

标签: r


【解决方案1】:

它不适用于当前会话,但可能(本地)适用于未来的会话。在您的主目录中编辑/创建一个.Rprofile 文件并添加以下两行:

.startedTime<-Sys.time()
.sessionTime<-function() Sys.time()-.startedTime

.Rprofile 中的行在会话开始时执行。我选择以点开头的名称,因此ls() 不会返回它们。接下来,开始一个 R 会话,当你给予时:

.sessionTime()

它将返回从会话开始经过的时间。

【讨论】:

  • 如果我在 3 小时前还醒着,我会发布什么 :-)
【解决方案2】:

proc.time 函数跟踪自 R 启动以来的时间(请参阅帮助),可用作:

Sys.time() - proc.time()["elapsed"]

找出会话何时开始。

【讨论】:

  • 这应该是问题的公认答案。
【解决方案3】:

在 Windows 中,您可以尝试查看 r-session 的创建时间目录

file.info(tempdir())$ctime

这是唯一的想法,可能并不总是有效

【讨论】:

  • 不错。这也适用于 Linux,并且比我的解决方案“侵入性更小”。问题是如果由于某种原因临时目录被修改,你的行将报告最后修改的时间。
  • @nicola In ?file.info “在 Windows 本机文件系统上,ctime 是文件创建时间(在大多数类似 Unix 的文件系统上没有记录的时间)。”可能只适用于windows
  • @nicola 尝试编辑文件夹(添加一些文件)mtimeatime 已更改,但 ctime 没有
  • 是的,我想你是对的。我在 Ubuntu 上试过你的线路,似乎工作了一段时间。然后,ctime 因某种原因发生了变化。
猜你喜欢
  • 2011-09-09
  • 1970-01-01
  • 2010-11-09
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多