使用已加载到变量中的RDS文件启动R控制台

使用已加载到变量中的RDS文件启动R控制台,r,R,我有一个RDS文件,例如/tmp/data.RDS。我想启动R,并已将该文件加载到环境中的变量中。我试过: R-e”数据AFAIK您有两种可能性: 解决方案1。自定义.Rprofile以捕获commandArgs()向量(另请参见)。例如,将其放入.Rprofile: if (any(commandArgs()=="load_rds")) { l = which(commandArgs()=="load_rds") data = readRDS(commandArgs()[l+1])

我有一个RDS文件,例如
/tmp/data.RDS
。我想启动R,并已将该文件加载到环境中的变量中。我试过:


R-e”数据AFAIK您有两种可能性:

解决方案1。自定义
.Rprofile
以捕获
commandArgs()
向量(另请参见)。例如,将其放入
.Rprofile

if (any(commandArgs()=="load_rds")) {
  l = which(commandArgs()=="load_rds")  
  data = readRDS(commandArgs()[l+1])
}
然后使用以下命令启动会话:
R--args load_rds a.rds

解决方案2。此解决方案有点黑客化,但不要求您修改
.R配置文件。
。您可以(a)启动一个加载数据的非交互式R会话,然后结束,然后(b)启动一个加载上一个工作区的交互式R会话。只需键入控制台:

R --save -e 'data = readRDS("~/a.rds")'; R --restore

这有帮助吗?

为什么要这样做?将调用添加到.Rprofile就足够了吗?或者您只想这样做一次吗?您可以添加类似于
if(any(commandArgs()=“yes”))数据的内容更多上下文:我有一个具有
r\u data\u文件
属性的Ruby对象(我使用该对象缓存r数据)。我希望能够执行类似于obj.inquire的操作来启动R并在那里加载RDS。这是为了调试目的。理想情况下,我不想调整.Rprofile,不过我现在要研究一下。谢谢!情节变厚了:我按照@nicola的建议更新了
Rprofile.site
。但是,现在当我运行
R加载RDS a=~/tmp/a.RDS时
,我在启动时得到了
参数'load\u rds'\uuu ignored\uuu
参数'a=/home/elad/tmp/a.rds'\uu ignored\uuu
。有没有办法抑制这些?最终得到了解决方案1。谢谢!