Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命令查看';R';RStudio正在使用的路径 原始问题_R_Linux_Path_Exec - Fatal编程技术网

命令查看';R';RStudio正在使用的路径 原始问题

命令查看';R';RStudio正在使用的路径 原始问题,r,linux,path,exec,R,Linux,Path,Exec,这似乎很容易,以前可能有人问过,但我无法通过搜索找到它 我安装了几种风格的R。我只是想知道,当我运行RStudio时,它指向的是什么味道的R。因此,我需要一个命令——最好在RStudio本身中——它可以告诉我当前正在处理的RStudio窗口所使用的底层R可执行文件 为了清楚起见,我不需要/不想知道我正在使用的R的版本(例如,R版本3.2.2(2015-08-14)-“消防安全”)。相反,我想知道RStudio用来到达R的实际路径——从RStudio内部查看——这样我就知道“for reals

这似乎很容易,以前可能有人问过,但我无法通过搜索找到它


我安装了几种风格的
R
。我只是想知道,当我运行RStudio时,它指向的是什么味道的
R
。因此,我需要一个命令——最好在RStudio本身中——它可以告诉我当前正在处理的RStudio窗口所使用的底层
R
可执行文件


为了清楚起见,我不需要/不想知道我正在使用的R的版本(例如,
R版本3.2.2(2015-08-14)-“消防安全”
)。相反,我想知道RStudio用来到达R的实际路径——从RStudio内部查看——这样我就知道“for reals”使用的是哪个版本。(例如,
/usr/local/bin/R


编辑与回答 这里有很多很棒的讨论,有些是针对操作系统的。我有一个苹果。就我而言,我发现:

> 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"
正如你们熟悉的人所看到的,我正在使用。如果我在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个符号链接)解析为:

作为最终目的地

因此,在我的系统(Mac OS X)上,
file.path(R.home(“bin”),“R”)
是最准确的
(编辑以反映这显然是Windows特定的解决方案的事实)。

在Windows上,出于亨里克·本特森(Henrik Bengtsson)关于这个主题的长篇文章的开头,我将使用以下内容

file.path(R.home("bin"), "R")
这比使用
file.path(R.home(),“bin”,“R”)
help(R.home)
中本代码段“值”部分提到的几种设置要好:

详情:

R主目录是R的顶级目录 正在运行安装

[……]

价值:

一个字符串,表示R的主目录或路径 特定组件。通常,组件都是子目录 但在类似Unix的系统中可能不是这样 安装。[…]Windows上“模块”和的返回值 “bin”是指子架构特定的位置


尝试
Sys.getenv('R_HOME')
R.HOME()
(更快)您还可以转到工具和全局选项,这将是Linux上的R/RStudio中的示例的第一行,
系统(“键入R”)
。在我的Linux上,它说
R is/usr/bin/R
@JorisMeys这不是OP的问题。旁注:在我的Linux上,
file.path(R.home(“bin”),“R”)
不会返回RStudio当前使用的可执行文件的路径。这个命令
system(“type R | xargs readlink”)
可以。但是它没有给出当前使用的路径。在我的机器上,它给出了
/usr/lib/R/bin/R
,这是不正确的。我的默认R二进制文件位于
/usr/bin/R
中。如果我将其更改为
/usr/bin/R.old
,RStudio将不会运行。@Pascal您能更具体一点吗?你的意思是它没有指向
Rcmd.exe
Rgui.exe
Rterm.exe
,如果它们是使用的?如果是这样的话,我同意,但是(这里猜测)认为OP只是想要找到RStudio使用的R版本的路径。但是,如果你说它给出的路径不正确,我将不得不不同意(直到你给我一个例子)。我只是说我的RStudio使用了
/usr/bin/R
,而
file.path(R.home(“bin”),“R”)
指向
/usr/lib/R/bin/R
@Pascal我已经很久没有在*NIX上使用R了,但是有没有可能
/usr/bin/R
是最终在
/usr/lib/R/bin/R
启动可执行文件的脚本?(我会检查一下自己,但现在没有访问非Windows机器的权限。)@Pascal好吧,如果
/usr/bin/R
不是一个shell脚本,并且如果Rstudio实际启动的是这个脚本,我几乎不知道发生了什么。它显然不符合
?R.home
(参见
“详细信息”
部分)的记录行为,也不符合我答案中链接的线程中Simon Urbanek评论的一般要旨。哦,我今晚要走了。
file.path(R.home("bin"), "R")