Posted in: Perl/R

安装 R 包的一些事

一、普通用户安装R包

现代版本的 R(4.X) 已经模仿 Python、Ruby 等流行软件的做法,不再往系统目录里面安装包了,而是默认会把包安装在自身 R 对应的 Library 下面。例如,假设 R 的路径是:~/miniconda3/lib/R/bin/R,则包默认就会在 ~/miniconda3/lib/R/library/ 下面(在此我们再一次看到了用 conda 而非用系统内置的 R 的重要性)。所以此时已经完全不需要担心权限的问题,直接安装即可:

install.packages("packagename");

二、指定国内镜像站点

安装 R 包还有一个特别需要注意的问题是设置下载网址。默认情况下它会从国外的网站下载,速度很慢。我们可以改成国内的网站(例如我喜欢用 http://mirrors.ustc.edu.cn/CRAN/ 这个科大的镜像),在 .Rprofile 配置文件里面写入:

local({r <- getOption("repos")
r["CRAN"] <- "http://mirrors.ustc.edu.cn/CRAN"
options(repos=r)})

三、安装指定版本的包

require(devtools)
install_version("nloptr", version = "1.2.1")

这招简直就是救命的神器,思考一下这样一个场景:

  1. 你需要安装一个包叫做A。
  2. R默认会去安装最新版本的A,假设它的发表日期是6个月前。
  3. A引用了另外一个包B。A作者发表时,B的版本是9个月前的v1。令A没想到的是,上个月B又发表了新版本v2,而且v2和v1语法还不一样。
  4. 这时R会自动去下载Bv2,于是你无论如何都安装不上去。
  5. 解决方法就是先把Bv2删除,安装Bv1,再安装A。

四、如果是bioConductor怎么办?

Very easy,首先把bioconductor安装上:

install.packages("BiocManager")

然后就用以下方法安装:

BiocManager::install("snpStats")

但问题在于bioConductor也会很慢,因此也要在 .Rprofile 配置文件里设置镜像。

options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")

事实上与其这么麻烦,还不如上Conda

五、先把包下载到本地再安装

有些时候下载包会特别慢(例如从github或从bioconductor的注释库),这时候需要先把包(.tar.gz格式或者解压后目录)下载到本地,再用如下方式安装:

install.packages("/your/path/package/", repos=NULL, type="source")

Comments (2) on "安装 R 包的一些事"

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注