我在网上搜索过,我还不清楚如何从Mac终端运行R.我安装了Rstudio和独立的R app。我以为我可以像命令行一样在“python”中输入“R”,但这不起作用。是否有必要在我的bash配置文件中编辑PATH?如果是这样,我如何给出R的正确位置?
感谢您的帮助
所以,我正在运行Sierra,当我在终端输入“r”或“R”时,我得到“-bash:R:command not found”。如果我输入,终端中的“哪个R”我没有得到任何输出。
以下是“echo $ PATH”的输出:/usr/local/heroku/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/2.7/斌:/用户/ samuelcolon /蟒蛇/斌:/Library/Frameworks/Python.framework/Versions/3.5/bin:/Users/samuelcolon/.rvm/gems/ruby-2.1.0/bin:/用户/ samuelcolon /。 rvm/gems/ruby-2.1.0@global/bin:/Users/samuelcolon/.rvm/rubies/ruby-2.1.0/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:在/ usr /本地/ bin中:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录:/Users/samuelcolon/.rvm/bin:/Users/samuelcolon/.rvm/bin
至于安装,我相信我刚才从cran.r-project.org直接下载了它。我可以在我的应用程序中找到GUI并打开它 - 我有3.13版。有可能,我只安装R.app但不安装R?也许这就是我在终端输入“R”时得到'命令未找到'的原因?
一般来说,我一直在RStudio工作,但我仍然想从终端访问R并找到所在的位置。如果从方方面开始最简单,我可以删除并重新安装R.我希望额外的细节有所帮助,我很欣赏这些回复。
答案 0 :(得分:12)
那些不熟悉Terminal和Bash的人的答案。
我已经从R.org网站上做了R的全新更新安装,作为寻找问题答案的一部分。
我发现这个最新的安装版本3.4.0安装了R以便在终端中访问,并且还安装了R.app作为软件包的一部分。
据我所知,阅读支持文档,如果你有一个旧版本的R它会更新它。但是它不会更新anaconda软件包安装的R安装。
R文件存储在哪里?
我只能假设通过全新安装的最新R,R将在终端中为您服务。
要了解正在访问的R文件的位置 - 在启动R后的终端中,在R.app中,键入:
>R.home()
以我的例子为例:
在R.app中 - 在顶级目录(不是我的用户文件夹)中访问R版本3.4.0:
R.home()
[1] "/Library/Frameworks/R.framework/Resources"
在终端中 - R版3.3.2在Anaconda包中访问,同样在顶级目录中访问。
R.home()
[1] "/anaconda/lib/R"
所以我有两个不同版本的R,终端访问R.app的不同版本。
如何确保我在终端中访问与在R.app中相同的版本?
对于熟悉bash的人,以及整个bash命令系统如何工作,我确信有一个构造良好的命令。这里都是一些新手解决方案。
-
•第一个解决方案:
我可以更新anaconda版本,但是,我不希望像anaconda软件包的其他元素一样依赖于这个旧版本的R.对于那些还不熟悉终端和bash的人来说,不是这样的新手解决方案。
-
•第二个解决方案:
此解决方案来自mko。它提供了一次性解决方案。从上面的结果,并进一步检查目录结构,找到这个R文件。
查找重要的R文件使我能够编辑R.app中显示的上述路径的扩展名。所以添加/ bin / R进入
/Library/Frameworks/R.framework/Resources/bin/R
输入并按回车将从此版本开始R.
或者,可以在GUI Finder中找到此文件和图标,由上述结果引导,只需双击它,它就会打开终端并为您运行R会话。简单!
还可以创建它的别名并将其放在桌面上以便日后启动。
-
•第三个解决方案:
我认为我的最后一个解决方案可能是最好的,添加到mko的解决方案中。别名。
在终端I的主目录中,使用nano文本编辑器打开.bash_profile。 (如果您还不知道如何执行此操作,那么最好不要使用此解决方案。)
然后我在此env文件中添加该行。
alias Rv340='/Library/Frameworks/R.framework/Resources/bin/R'
然后我保存更改并退出此终端会话。然后我打开一个新的终端窗口。 (这是对上面env的更改包含在新的终端会话中)。
然后当我输入别名时:
Rv340
我想要的R版本打开。
您可以为“Rv340”选择不同的别名。
-
•第四个解决方案:
在终端中打开相同版本的R的第二个更永久的解决方案如下。
复制R.app中显示的路径以响应上面的R.home()命令,并将该路径添加到.bash_profile中的PATH。 (如果您还不知道如何执行此操作,请忽略此解决方案。)请执行以下操作。
export PATH="/Library/Frameworks/R.framework/Resources:$PATH"
根据我的理解,这可以确保bash在这里查找R(以及其他任何内容),然后转到PATH中的其他路径。由于这会将此路径添加到$ PATH(一个env变量)的开头,因此bash首先在此处查找首先找到较新版本的内容,然后停止查找。
在.bash_profile中设置的env中理解PATH时,以下两个链接很有帮助。
How to correctly add a path to PATH.
这个解决方案可能会因为anaconda调用R而陷入困境。我还没有检查过这个问题。
答案 1 :(得分:5)
首先,您必须启动终端应用程序。您可以使用内置的Terminal.app,也可以使用替换。我最喜欢的是iTerm2
然后,您只需打开终端窗口并运行R.如下所示:
与R玩得开心!
答案 2 :(得分:2)
在MacBook(MacOS BigSur)上安装R-4.0.3.pkg时遇到了同样的问题。可以在笨拙的R GUI中打开R.app,但是在终端中键入“ R”无效。
结果是,R可执行文件位于此处:/Library/Frameworks/R.framework/Versions/4.0/Resources/bin/R
因此我将此别名添加到了新创建的.zshrc脚本中:
alias R '/Library/Frameworks/R.framework/Versions/4.0/Resources/bin/R'
现在,当我输入R时,它会打开...我发誓这一切在早期版本中都是无缝发生的。
答案 3 :(得分:0)
在macOS上以管理员权限打开RStudio的简单方法:
现在RStudio将具有管理员权限!
答案 4 :(得分:0)
您可以创建从 R 和 Rscript 二进制文件到 /usr/local/bin
的符号链接,以将它们添加到 PATH:
sudo ln -s /Library/Frameworks/R.framework/Versions/Current/Resources/bin/R /usr/local/bin
sudo ln -s /Library/Frameworks/R.framework/Versions/Current/Resources/bin/Rscript /usr/local/bin
现在 which R
应该返回 /usr/local/bin/R
,您可以使用 R。
答案 5 :(得分:0)
目前 CRAN 的 R 安装包中存在一个错误,导致它没有正确安装到 R 和 Rscript 的符号链接以供命令行使用。我刚刚通过检查他们 4.0.5 安装包中的 postflight 脚本来验证这一点。这仅影响 20 及更高版本的 MacOS 系统版本(您可以查看 uname -r
)。
我在此处提供了更多信息,以及“正确”修复应该是什么:手动创建指向 /usr/local/bin
的符号链接,指向 R
和 Rscript
二进制文件本身。如果这是当前的挑战,那么这将是创建别名或以各种方式操作 PATH
的更好的解决方案,因为这是安装包打算执行的操作(并且可能很快会再次执行)。
简而言之,如果这是问题所在,那么直接创建符号链接的 Ashkan Mirzaee 的答案 (https://stackoverflow.com/a/67202173/2093929) 在形式上是正确的,但可能没有正确的链接命令。 4.0.5 包打算改为使用:
mkdir -p /usr/local/bin
cd /usr/local/bin
rm -f R Rscript
ln -s /Library/Frameworks/R.framework/Resources/bin/R .
ln -s /Library/Frameworks/R.framework/Resources/bin/Rscript .