是否可以管理R会话?

时间:2019-06-27 14:04:12

标签: r rstudio tidyverse

是否可以管理R会话,如:

  • 将R控制台连接到现有的R会话进程吗?
  • 两个R会话可以互相传输数据吗?

在以下可能情况下,人们可能会希望这样做:

  1. 您很高兴在进行R项目,并生成了需要3个小时才能计算出的数据。
  2. 在发生技术问题时,您决定保存工作区。
  3. 保存后,Rstudio决定永久挂起,但是R会话不受影响。

在这种情况下,您想要

  1. 通过终端连接到R会话以无论如何检索您的数据。
  2. 设置另一个新的R会话,该会话与现有R会话连续同步作为备份会话。

有可能吗?

1 个答案:

答案 0 :(得分:3)

  

将您的R控制台连接到现有的R会话进程吗?

不可能。

  

两个R会话可以互相传输数据吗?

是的,有多种方法可以做到这一点。通用关键字是“进程间通信”。例如,您可以使用名为管道或套接字的文件。要序列化数据,可以使用内置函数(saveRDSreadRDS)或包(例如feather)。

但是对于您给定的用例,有一个更简单的解决方案:

从不依赖RStudio保存您的R会话。相反,可以通过调用saveRDS来明确地执行此操作(或者保存整个工作空间(通常不建议使用save.image)。实际上,通常的建议是禁用用于保存和恢复会话的RStudio选项!

确保您的偏好设置如下:

RStudio preferences