1

我想将 Rcmdr 作为来自 bash(或任何 unix shell)的命令启动,也许作为别名。R 接受 CMD 参数,我也可以使用 <. 我希望 R 控制台保持打开状态,并启动交互式 RCommander 会话(Rcmdr 是 R 的流行 GUI,对于任何阅读的新手来说,似乎你启动了 R,输入 library(Rcmdr) 然后 Commander () 来启动它)。

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

如果我用 < 管道输入我的输入,那么这个脚本会一直运行到它说 Commander GUI 仅在交互式会话中启动:

library(Rcmdr);
Commander();

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

在 R 中“在命令行上获取文件但以交互方式运行”似乎是不可能的。似乎还有命令行选项可以忽略全局和用户配置文件,但不能指定自定义配置文件,例如R --profile-custom ./.Rprofile2

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

4

1 回答 1

1

在这里使用 Ubuntu 机器时,我可以使用 Dirk 在此邮件列表帖子中提供的建议:

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从终端终止该进程。

于 2016-02-02T23:20:27.353 回答