R基础笔记——R语言包的安装 (2021-06-22更新)
R语言之所以强大,很大的原因在于强大的R语言包。用过R的人都有个体验就是,每当我们要用R来做一件事情的时候,不免第一件事情就是安装一个(些)新的包。作为一个R老司机(如果按使用R的时间算的话__),我之前还是只会用传统的install.packages() 或者在GUI界面安装第三方包。然而,传统的安装方法只能安装发布在CRAN上的包,有很多R语言包(比如Bioconductor上的包)是没法用install.packages()安装的,另外还有一些包发布在github上面,因此也不能用传统方法安装。面对越来越复杂的局面,本文就目前的各种R语言包安装方式做一个总结,毕竟学会安装R语言包是入门R的第一步也是用好R的第一步。
内容概要
- 查看R的版本和R语言包的安装路径
- 查看可安装的包(指来自CRAN的包):available.packages()
- 查看已安装的包
- R包的安装方式全掌握
1. 查看R解释器版本及包的安装路径
1.1 sessionInfo() 查看R解释器版本及运行平台信息
> sessionInfo()
运行上述代码就会显示如下信息(本人电脑上的R)以及当前工作空间加载的包(这里不显示),
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
1.2 .libPaths() 查看包安装路径
> .libPaths()
在Rstudio控制台敲出上面的代码,你会看到以下输出一个目录,那就是你安装的包存放的地方,我们可以打开进去看看你都安装了哪些包。
[1] "D:/R-3.3.2/library"
2. 查看可安装的包
> p <- available.packages()
> dim(p)
显示:
[1] 10102 17
上一小节其实已经透露了另一种方法,即直接打开包安装路径查看(一个文件夹是一个包)。运行上面的代码会得到一个N*17的矩阵变量p,该矩阵包含了N个当前仓库能安装的包,每个包有17个属性信息。如果你想查看指定仓库能安装的包有哪些,则加上参数 contriburl = 仓库url , 这里的仓库有哪些以及url去哪里可以查,我目前也没找到,下面的例子来自生信菜鸟团的博客.
> available.packages(contriburl = "http://bioconductor.org/packages/3.1/bioc/bin/windows/contrib/3.2/")
3. 查看已经安装的包
> installed.packages()
这个函数是查看当前R里面安装了哪些包,函数返回一个N*16的矩阵(N为已安装的包的个数)。我们可以用grep(packageName, installed.packages()[,1] ) 来查找是否安装了某个包。还有另外一种方式,上面1.2节提到过的,直接到包安装的目录里面去看已经安装了哪些包。
4. R包的安装方式全掌握
接下来是本文的重点啦,下面会依次介绍三种R包的安装方式:1)从CRAN安装;2)从Github安装;3)从Bioconductor安装;4)从本地源码安装。
Bioconductor主要是跟生物数据分析及可视化相关的包,因为我是学生物信息的,所以比较常用,不知道其他领域是否还有类似的某领域内的包发布的仓库;最后本地安装的方法也很重要,特别对于在大型公共服务器上,一般没有开放网络,无法通过上述前三种方法在线安装。
4.1 从CRAN安装
> install.packages('packageName')
这个函数会从你设置的CRAN镜像中下载指定的包的二进制代码并安装到.libPaths()指示的地方。我们也可以在函数中通过设置lib这个参数来指定安装到哪个目录。
这个函数也可以安装存放在本地的包的二进制文件,直接传给函数包的路径和包名字为参数就好。
4.2 从Github安装
#load devtools at first
> library(devtools)
> install_github('hadley/dplyr') #install from github, e.g. dplyr
实用devtools包中的函数install_github()来安装,需要指定仓库名(例子中的'hadley/'),这点通常比较难,因为很多包我们记不住这个。为此有人开发了另一个包,githubinstall,也是专门用来从github安装R包的,且用法类似于install.packages(),只需提供包的名字即可,如下代码示例:
#load githubinstall at first
> library(githubinstall)
> install_github('dplyr') #install from github, e.g. dplyr
4.3 从Bioconductor安装
历史办法:
#load bioconductor repository at first
> source("https://bioconductor.org/biocLite.R")
> biocLite('DavidWebService') #install DavidWebService from Bioconductor
这个先用source加载bioconductor仓库,然后通过biocLite()函数安装指定的包。
Bioconductor已经更新了包管理器,新的安装方法如下 (e.g. DESeq2):
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("DESeq2")
4.4 从本地源码安装
有时候在服务器上没有网络,无法通过在线安装的时候,我们还可以选择下载源码,然后从本地安装。
下面以stringr这个包为例:
先去CRAN上面下载 stringr_1.4.0.tar.gz 源码安装包,假设存放于路径:/home/usrname/src , 下面是本地安装代码:
install.packages("/home/usrname/src/stringr_1.4.0.tar.gz",repos=NULL,type="source")
---END---
Any questions or advice, please contact zou.xudong at foxmail.com