本指南适用于MacOS 10.13及以上的系统。不确定有没有用的环境依赖是xcode commandline tools,不嫌麻烦可以提前装一下,很多东西都要用到这个。

1
xcode-select --install 

走流程介绍一下R

R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发(也因此称为R),现在由“R开发核心团队”负责开发。R基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。

R的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同时有人开发了几种图形用户界面,其中RStudio是最为广泛使用的集成开发环境。

环境配置过程

安装Anaconda

如果已经安装过了(打开终端试试conda --version命令),就直接看下一部分。

按照我的习惯,一般是用脚本安装。Anaconda官网的下载页面直接拉到底,下载命令行安装文件。

终端进入下载文件夹,输入bash Anaconda3-2020.07-MacOSX-x86_64.sh(具体版本看你下载文件的名字),一路下一步,遇到y/n就选y。安装完成后重启终端,应该长这样:

如果想在新建环境里执行下面的操作,可以输入以下命令新建并激活环境:

1
2
conda create -n env_name python=3 ipython jupyterlab
conda activate env_name

我在这里不讲如何新建环境了,所有操作直接在base环境里执行。在进行下一步操作前,可以尝试输入jupyter notebook或者jupyter lab看一下服务有没有正常启动。

安装R语言组件

我们以(当时)最新的R-4.0.2版本为例。R官网贴心为各国商科精英们准备了物理距离尽可能短的镜像。下表是中国境内的服务器:

R-4.0.2.pkg 下载链接 镜像源
https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/macosx/R-4.0.2.pkg TUNA Team, Tsinghua University
https://mirrors.bfsu.edu.cn/CRAN/bin/macosx/R-4.0.2.pkg Beijing Foreign Studies University
https://mirrors.ustc.edu.cn/CRAN/bin/macosx/R-4.0.2.pkg University of Science and Technology of China
https://mirror-hk.koddos.net/CRAN/bin/macosx/R-4.0.2.pkg KoDDoS in Hong Kong
https://mirrors.e-ducation.cn/CRAN/bin/macosx/R-4.0.2.pkg Elite Education
https://mirror.lzu.edu.cn/CRAN/bin/macosx/R-4.0.2.pkg Lanzhou University Open Source Society
https://mirrors.nju.edu.cn/CRAN/bin/macosx/R-4.0.2.pkg eScience Center, Nanjing University
https://mirrors.tongji.edu.cn/CRAN/bin/macosx/R-4.0.2.pkg Tongji University
https://mirrors.sjtug.sjtu.edu.cn/CRAN/bin/macosx/R-4.0.2.pkg Jiao Tong University

安装“R-4.0.2.pkg”前务必注意!⚠️⚠️⚠️:

下载链接页面有一段小字:

Note: the use of X11 (including tcltk) requires XQuartz to be installed since it is no longer part of OS X. Always re-install XQuartz when upgrading your macOS to a new major version.

一定要注意,这时候先按照要求把XQuartz装上,不然之后会出状况(后文简述现象)。

正常运行pkg文件,一路下一步,安装。Launchpad出现R.app的图标。当然我们一般用不着这个东西。

终端输入R并回车,应该长这样:

这样R语言相关组件就算安装好了,实在不放心也可以试试hello world:

安装IRkernel

和python在jupyter上解释需要依赖iPython、iPykernel同理,R语言脚本在jupyter上运行也依赖于一种即时的解释器内核iRkernel。和pip或者conda类似,我们也需要使用R的包管理工具先安装依赖环境。

1
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))

执行第一句脚本的时候会让选镜像仓库,这时候就可以看出问题的端倪了:如果像我一样没有安装XQuartz,就不会弹出一个类似GUI的东西让你选择仓库,而是直接命令行输入序号。如果是这样,可以先不用装这些了,先回去把XQuartz装好吧。否则就会报告如下错误:

1
2
3
4
5
6
7
8
Error in (function (display = "", width, height, pointsize, gamma, bg,  : 
X11 module cannot be loaded
In addition: Warning message:
In (function (display = "", width, height, pointsize, gamma, bg, :
unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so':
dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Library not loaded: /usr/X11/lib/libSM.6.dylib
Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so
Reason: image not found

这是因为MacOS在更新10.13版本的时候替换掉了原有的X11 module。而如果按照我之前说的先安装了XQuartz,则应该有类似这样的一个选择界面:

好了,接下来就是选择合适的仓库,然后一路安装,出现如下结果:

再执行:

1
2
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()

终端界面应该长这样:

退出R终端,新建一个终端输入jupyter notebook,看看右上角有没有新建R语言notebook的选项了?

这就算完事啦~

(如果还是有问题,不妨试试完全卸载后重装。⚠️注意:卸载需要按照这个教程——《OS X下卸载R语言》