R基礎(chǔ)筆記——R語言包的安裝 (2021-06-22更新)
R語言之所以強(qiáng)大,很大的原因在于強(qiáng)大的R語言包。用過R的人都有個體驗(yàn)就是,每當(dāng)我們要用R來做一件事情的時候,不免第一件事情就是安裝一個(些)新的包。作為一個R老司機(jī)(如果按使用R的時間算的話__),我之前還是只會用傳統(tǒng)的install.packages() 或者在GUI界面安裝第三方包。然而,傳統(tǒng)的安裝方法只能安裝發(fā)布在CRAN上的包,有很多R語言包(比如Bioconductor上的包)是沒法用install.packages()安裝的,另外還有一些包發(fā)布在github上面,因此也不能用傳統(tǒng)方法安裝。面對越來越復(fù)雜的局面,本文就目前的各種R語言包安裝方式做一個總結(jié),畢竟學(xué)會安裝R語言包是入門R的第一步也是用好R的第一步。
內(nèi)容概要
- 查看R的版本和R語言包的安裝路徑
- 查看可安裝的包(指來自CRAN的包):available.packages()
- 查看已安裝的包
- R包的安裝方式全掌握
1. 查看R解釋器版本及包的安裝路徑
1.1 sessionInfo() 查看R解釋器版本及運(yùn)行平臺信息
> sessionInfo()
運(yùn)行上述代碼就會顯示如下信息(本人電腦上的R)以及當(dāng)前工作空間加載的包(這里不顯示),
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控制臺敲出上面的代碼,你會看到以下輸出一個目錄,那就是你安裝的包存放的地方,我們可以打開進(jìn)去看看你都安裝了哪些包。
[1] "D:/R-3.3.2/library"
2. 查看可安裝的包
> p <- available.packages()
> dim(p)
顯示:
[1] 10102 17
上一小節(jié)其實(shí)已經(jīng)透露了另一種方法,即直接打開包安裝路徑查看(一個文件夾是一個包)。運(yùn)行上面的代碼會得到一個N*17的矩陣變量p,該矩陣包含了N個當(dāng)前倉庫能安裝的包,每個包有17個屬性信息。如果你想查看指定倉庫能安裝的包有哪些,則加上參數(shù) contriburl = 倉庫url , 這里的倉庫有哪些以及url去哪里可以查,我目前也沒找到,下面的例子來自生信菜鳥團(tuán)的博客.
> available.packages(contriburl = "http://bioconductor.org/packages/3.1/bioc/bin/windows/contrib/3.2/")
3. 查看已經(jīng)安裝的包
> installed.packages()
這個函數(shù)是查看當(dāng)前R里面安裝了哪些包,函數(shù)返回一個N*16的矩陣(N為已安裝的包的個數(shù))。我們可以用grep(packageName, installed.packages()[,1] ) 來查找是否安裝了某個包。還有另外一種方式,上面1.2節(jié)提到過的,直接到包安裝的目錄里面去看已經(jīng)安裝了哪些包。
4. R包的安裝方式全掌握
接下來是本文的重點(diǎn)啦,下面會依次介紹三種R包的安裝方式:1)從CRAN安裝;2)從Github安裝;3)從Bioconductor安裝;4)從本地源碼安裝。
Bioconductor主要是跟生物數(shù)據(jù)分析及可視化相關(guān)的包,因?yàn)槲沂菍W(xué)生物信息的,所以比較常用,不知道其他領(lǐng)域是否還有類似的某領(lǐng)域內(nèi)的包發(fā)布的倉庫;最后本地安裝的方法也很重要,特別對于在大型公共服務(wù)器上,一般沒有開放網(wǎng)絡(luò),無法通過上述前三種方法在線安裝。
4.1 從CRAN安裝
> install.packages('packageName')
這個函數(shù)會從你設(shè)置的CRAN鏡像中下載指定的包的二進(jìn)制代碼并安裝到.libPaths()指示的地方。我們也可以在函數(shù)中通過設(shè)置lib這個參數(shù)來指定安裝到哪個目錄。
這個函數(shù)也可以安裝存放在本地的包的二進(jìn)制文件,直接傳給函數(shù)包的路徑和包名字為參數(shù)就好。
4.2 從Github安裝
#load devtools at first
> library(devtools)
> install_github('hadley/dplyr') #install from github, e.g. dplyr
實(shí)用devtools包中的函數(shù)install_github()來安裝,需要指定倉庫名(例子中的'hadley/'),這點(diǎn)通常比較難,因?yàn)楹芏喟覀冇洸蛔∵@個。為此有人開發(fā)了另一個包,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()函數(shù)安裝指定的包。
Bioconductor已經(jīng)更新了包管理器,新的安裝方法如下 (e.g. DESeq2):
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("DESeq2")
4.4 從本地源碼安裝
有時候在服務(wù)器上沒有網(wǎng)絡(luò),無法通過在線安裝的時候,我們還可以選擇下載源碼,然后從本地安裝。
下面以stringr這個包為例:
先去CRAN上面下載 stringr_1.4.0.tar.gz 源碼安裝包,假設(shè)存放于路徑:/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