【发布时间】:2016-02-21 06:06:34
【问题描述】:
原始问题
这似乎很简单,以前可能有人问过,但我无法通过搜索找到它。
我安装了几种R。我只是想知道,当我运行 RStudio 时,R 指向的是哪种风格。所以,我需要一个命令——最好在 RStudio 本身内——它可以告诉我正在用于我当前正在使用的这个 RStudio 窗口的底层 R 可执行文件。
明确地说,我不需要/想知道我正在使用的 R 的 版本(例如,R version 3.2.2 (2015-08-14) -- 'Fire Safety')。相反,我想知道 RStudio 用于到达 R 的实际路径——从 RStudio 中查看它——以便我“真实地”知道它正在使用哪个版本。 (例如,/usr/local/bin/R。)
编辑和回答
这里有很多很棒的讨论,有些是特定于操作系统的。我有一台 Mac。就我而言,我发现:
> system("type R")
R is /usr/local/bin/R
> R.home()
[1] "/usr/local/Cellar/r/3.2.2_1/R.framework/Resources"
> file.path(R.home("bin"), "R")
[1] "/usr/local/Cellar/r/3.2.2_1/R.framework/Resources/bin/R"
正如你们熟悉的那样,我使用的是brew。如果我在 R 之外寻找/usr/local/bin/R,我会看到:
$ ls -l /usr/local/bin/R
lrwxr-xr-x 1 mike admin 25 Nov 14 17:31 /usr/local/bin/R -> ../Cellar/r/3.2.2_1/bin/R
最终解析(2个符号链接)为:
/usr/local/Cellar/r/3.2.2_1/R.framework/Resources/bin/R
作为最终目的地。
所以在我的系统 (Mac OS X) 上,file.path(R.home("bin"), "R") 是最准确的。
【问题讨论】:
-
试试
Sys.getenv('R_HOME')或R.home()(更快) -
你也可以去Tools和Global Options,它会是General的第一行
-
例如在 Linux 上的 R/RStudio 中,
system("type R")。在我的 Linux 上,它显示R is /usr/bin/R。 -
@JorisMeys 这不是 OP 的问题。
-
旁注:在我的 Linux 上,
file.path(R.home("bin"), "R")不会返回 RStudio 当前使用的可执行文件的路径。这个命令system("type R | xargs readlink")可以。