【问题标题】:Can I start an Rcmdr session from a unix shell?我可以从 unix shell 启动 Rcmdr 会话吗?
【发布时间】:2016-05-11 19:57:26
【问题描述】:

我想将 Rcmdr 作为来自 bash(或任何 unix shell)的命令启动,也许作为别名。 R 接受 CMD 参数,我也可以使用 <. r rcommander gui library commander>

我知道如何将 Rcmdr 添加到我的配置文件中,如果我在我的 Linux 工作站上的 .Rprofile 中包含 library(Rcmdr),它似乎总是会启动。

如果我使用

library(Rcmdr);
Commander();

但是,如果我运行R CMD BATCH ./rcommander.r,它会立即启动并立即关闭,可能会给我一些关于我没有看到的交互式会话的警告,因为 CMD BATCH 将 R 置于非交互式模式,因此对于将 Rcmdr“注入”到交互式 R 会话中的目的。

在 R 中“在命令行上获取文件但以交互方式运行”似乎是不可能的。似乎还有命令行选项可以忽略全局和用户配置文件,但不能指定像 @987654325 这样的自定义配置文件@

我想指定一个配置文件,意思是“现在我想启动并使用 RCmdr”,并且有时在没有它的情况下仍然能够运行 R。

【问题讨论】:

  • 我不明白为什么警告信息不清楚。 BATCH 模式不是交互式的。
  • R 很奇怪。我不想使用批处理模式,但这是从 R 命令行指定 R 命令的唯一方法,这很奇怪。
  • 通常人们会编写一个小的 .R 文件,然后从特定目录启动它,然后该目录成为工作目录。然后系统负责启动交互式 R 会话,其中包含的命令在 .Rprofile 和 Rprofile.site 执行后执行。见?Startup

标签: r r-commander


【解决方案1】:

在这里使用 Ubuntu 机器,我能够使用 Dirk 在this mailing list post 中提供的建议:

nathan@nathan-laptop:~/tmp$ cat rcommander.r 
#!/bin/bash 
r -lRcmdr -e'while(TRUE) Commander();'  


nathan@nathan-laptop:~/tmp$ cat rcommander2.r 
#!/bin/bash 
Rscript --default-packages=Rcmdr -e 'while(TRUE) Commander();'

第一个脚本使用 Dirk 的 littler 包,在 CRAN 上可用,第二个脚本使用标准的 Rscript 可执行文件。如前所述,您可以在终端使用 ctrl + c 终止该进程。

【讨论】:

  • 如果你用普通的RR -e 'library("Rcmdr"); while(TRUE) Commander();' 运行它,它将无限地向R Commander 的新窗口发送垃圾邮件._.
猜你喜欢
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2013-12-12
相关资源
最近更新 更多