本期目錄:
什么是R包?
R包安裝
從CRAN安裝
從bioconductor安裝
從github安裝
本地安裝
其他安裝方法
終極大法
R包常見報(bào)錯(cuò)
為了方便大家學(xué)習(xí),我已經(jīng)錄制了 配套的視頻 ,放在了嗶哩嗶哩(我的B站賬號(hào): 阿越就是我), 免費(fèi)觀看 ,復(fù)制以下網(wǎng)址粘貼到瀏覽器打開即可: https://space.bilibili.com/42460432/channel/collectiondetail?sid=3740949
別問(wèn)我怎么修改R包的默認(rèn)安裝位置,這不是初學(xué)者該學(xué)的東西,把你的精力用在刀刃上。但是我在合集最后會(huì)介紹如何修改。
R語(yǔ)言學(xué)到后面其實(shí)就是學(xué)習(xí)各種R包和函數(shù)的使用。
什么是R包? R包是別人整理好的工具包,內(nèi)置各種函數(shù)以及幫助文檔等信息,可以用來(lái)實(shí)現(xiàn)特定的功能。
R包相當(dāng)于手機(jī)里的APP,不同的APP有不同的功能 ,不同的R包也有不同的功能,比如:有些R包是專門用來(lái)畫熱圖的(pheatmap
、complexheatmap
等),有些R包是專門用來(lái)做生存分析(survival
、survminer
等)的,等。
R語(yǔ)言在安裝時(shí)會(huì)有很多自帶的R包(包括base
、datasets
、utils
、grDevices
、graphics
、stats
、methods
),這些R包不需要額外安裝,都是出場(chǎng)自帶的,安裝好R語(yǔ)言就能用了。類似于剛買的新手機(jī)有很多內(nèi)置APP,這些內(nèi)置APP是不用自己額外安裝的。
R包安裝 R包就相當(dāng)于手機(jī)里的各種APP,自帶的APP很明顯是無(wú)法滿足日常使用的,所以我們需要自己安裝其他APP。同理,R自帶的R包也是無(wú)法滿足我們要求的,所以我們也要自己安裝其他R包。
安裝R包就類似于給手機(jī)安裝APP ,安裝方式有多種。比如:
小米手機(jī)可以從小米應(yīng)用商店 安裝APP,也可以從酷安 安裝APP,還可以從Google play 安裝,還可以從官網(wǎng)下載apk 文件到本地安裝,等; 蘋果手機(jī)可以從App Store 安裝,還可以通過(guò)巨魔商店 安裝,也可以本地安裝 。 R包安裝也有多種方法,不同的R包是存放在不同的應(yīng)用商店 的。比較常見的R包安裝主要是4種:
隨著學(xué)習(xí)的深入你還會(huì)遇見其他安裝方法,我列舉的這幾種是最常見的。
R語(yǔ)言是老外發(fā)明的東西,我們要訪問(wèn)老外的東西,由于眾所周知的原因,是很困難的 。不只是R,其他的東西比如Python、Linux等,都是這樣。
所以在安裝R包時(shí),我們一定要先修改鏡像 (mirror)(或者你可以使用魔法,就像你使用Google play需要魔法一樣,如果你在國(guó)外的話自然是不需要這一步的)。鏡像可以簡(jiǎn)單理解為中國(guó)人為了方便自己下載安裝,把國(guó)外的東西完整復(fù)制了一份放到國(guó)內(nèi),而且會(huì)隨著國(guó)外的更新而更新。使用鏡像的好處的不需要魔法我們也可以流暢快速地下載安裝R包。
一個(gè)R包只需要安裝一次即可重復(fù)使用,R包也可以更新、卸載、重裝,這個(gè)道理和手機(jī)APP簡(jiǎn)直是一模一樣。
以下是4種R包安裝方法的詳細(xì)介紹,這部分我在嗶哩嗶哩也有相應(yīng)的視頻介紹,點(diǎn)擊即可觀看:R語(yǔ)言零基礎(chǔ)入門
從CRAN安裝 CRAN是最主要的存儲(chǔ)R包的倉(cāng)庫(kù),大多數(shù)R包都是存儲(chǔ)在這里的。
要從CRAN安裝,我們首先要修改鏡像(如果你人在國(guó)外是不需要這一步的)。這個(gè)過(guò)程在安裝好Rstudio之后非常簡(jiǎn)單,依次點(diǎn)擊:Tools
-Global Options
:
然后按照下圖所示依次點(diǎn)擊,在列出的鏡像中任選一個(gè)中國(guó)的鏡像 即可(比如我選擇了上海交通大學(xué)的鏡像),選好之后點(diǎn)擊OK
即可。這樣就修改好鏡像了,下面就可以暢快的安裝R包了。這種修改鏡像只需要1次修改即可,以后從CRAN安裝R包都會(huì)默認(rèn)使用你選擇的這個(gè)鏡像,不用每次都改。
比如我們現(xiàn)在想要安裝ggplot2
這個(gè)R包,使用以下代碼即可:
install.packages("ggplot2")
安裝R包時(shí)一定要注意,R包的名字不能拼錯(cuò),大小寫也不能錯(cuò),而且必須加引號(hào),雙引號(hào)或者單引號(hào)都可以,但是必須是英文狀態(tài)下的!加載R包不需要引號(hào)。
從bioconductor安裝 醫(yī)學(xué)生/醫(yī)生學(xué)習(xí)R語(yǔ)言有相當(dāng)一部分人是想做生信分析 的,絕大多數(shù)做生信分析的R包都不在CRAN中,而是存儲(chǔ)在bioconductor中,這個(gè)網(wǎng)站是專門存儲(chǔ)生物信息學(xué)分析所用R包的。
這個(gè)倉(cāng)庫(kù)也是老外建立維護(hù)的,所以要安裝這里的R包,自然也是先要更改鏡像的。
從bioconductor的官方鏡像列表中可知,目前中國(guó)鏡像有以下4個(gè),分別是清華大學(xué)的鏡像、南京大學(xué)的鏡像、中國(guó)科學(xué)技術(shù)大學(xué)的鏡像、西湖大學(xué)的鏡像 ,如下所示:
每次 在安裝bioconductor的R包之前,都要先運(yùn)行以下代碼更換鏡像,任選一個(gè)運(yùn)行 即可,目前我推薦你使用西湖大學(xué)的鏡像,原因請(qǐng)看bioconductor有新的鏡像選擇啦 :
# 使用清華大學(xué)的鏡像 options(BioC_mirror="https://mirrors.tuna./bioconductor" )# 使用南京大學(xué)的鏡像 options(BioC_mirror="https://mirrors./bioconductor/" )# 使用中國(guó)科學(xué)技術(shù)大學(xué)的鏡像 options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/" )# 使用西湖大學(xué)的鏡像 options(BioC_mirror="https://mirrors./bioconductor" )
bioconductor的鏡像不像CRAN那樣只需要改一次,每次在安裝bioconductor的包之前,都需要運(yùn)行一下修改鏡像的代碼。但是隨著學(xué)習(xí)的深入,你以后也可以通過(guò)修改.Rporfile
文件實(shí)現(xiàn)1次修改,永久使用!建議初學(xué)者就別搞這些花里胡哨的操作了,還是每次都運(yùn)行一下吧。
運(yùn)行外以上代碼更改好鏡像之后,我們還需要先安裝一個(gè)bioconductor的R包管理器 ,才能安裝bioconductor中的R包,使用以下代碼安裝bioconductor的R包管理器,也就是BiocManager
包:
# R4.3.x對(duì)應(yīng)的bioconductor版本是3.18,R4.4.x對(duì)應(yīng)的版本就是3.19了,注意不要搞錯(cuò), # 否則會(huì)報(bào)錯(cuò)哦 if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(version = "3.18")
安裝好這個(gè)包管理器之后,就可以安裝bioconductor的R包了。以后再安裝bioconductor的R包時(shí),也不需要再重新安裝這個(gè)包管理器了。
R語(yǔ)言每年會(huì)進(jìn)行1次版本大更新,時(shí)間大約是每年的4月份,bioconductor每年會(huì)進(jìn)行兩次更新,時(shí)間大約是每年的4月份和10月份。bioconductor的版本和R的版本是有對(duì)應(yīng)關(guān)系的,比如R4.2.x對(duì)應(yīng)的bioconductor版本是3.17,R4.3.x對(duì)應(yīng)的bioconductor版本是3.18,R4.4.x對(duì)應(yīng)的是3.19。對(duì)于初學(xué)者來(lái)說(shuō),不建議跨版本使用。
通常來(lái)說(shuō)R語(yǔ)言不需要頻繁的更新,一般不會(huì)影響使用,但是如果你一定要更新的話,建議每年的5月份進(jìn)行更新,剛好是R和bioconductor同時(shí)更新的時(shí)間,此時(shí)的版本剛好匹配,初學(xué)者安裝R包出錯(cuò)的概率要小一些。
比如我們要安裝一個(gè)做差異分析的R包:limma
,就可以使用以下代碼:
# 每次都要先改鏡像 options(BioC_mirror="https://mirrors./bioconductor") # 改完鏡像再安裝 BiocManager::install("limma")
這樣limma
包就安裝好了。以后你要安裝bioconductor中的R包,就先改鏡像,然后使用BiocManager::install("xxx")
即可。
從github安裝 有一些R包既不在CRAN,也不在bioconductor,而是在github中。要安裝github中的R包,建議借助devtools
或者remotes
包實(shí)現(xiàn)。
remotes
可以認(rèn)為是devtools
的精簡(jiǎn)版,其實(shí)區(qū)別不大,所以我個(gè)人比較推薦使用devtools
。
首先從CRAN安裝devtools
包:
# 沒改鏡像的記得先改鏡像 install.packages("devtools")
安裝好之后再使用install_github()
安裝github中的R包,比如,我現(xiàn)在想要安裝easyTCGA
這個(gè)包,使用以下代碼即可:
library(devtools) install_github("ayueme/easyTCGA")
其中easyTCGA
是R包的名字,前面的ayueme
是倉(cāng)庫(kù)所有者的名字。千萬(wàn)不要寫錯(cuò),寫錯(cuò)必然報(bào)錯(cuò)!
一般你找到這個(gè)R包都會(huì)有介紹如何安裝,直接復(fù)制粘貼即可,github左上角也會(huì)有名字的,照抄就行,比如:
但是國(guó)內(nèi)訪問(wèn)github是有困難的,如果你的網(wǎng)絡(luò)不行,那么這個(gè)方式大概率你會(huì)失敗 。有的時(shí)候即使你能打開github的網(wǎng)頁(yè),也不見得你用以上方法就能安裝成功。那么這時(shí)你可以嘗試下面介紹的本地安裝 。
本地安裝 本地安裝R包就和本地安裝手機(jī)APP沒有任何區(qū)別,把安裝包下載下來(lái),然后安裝就好了。
還是以上面的easyTCGA
為例,如果你要本地安裝,首先你得下載這個(gè)R包到你的電腦上,所以你得找到這個(gè)R包的下載地址才行!
在github上面的R包的下載地址都是有規(guī)律的,通常都是:https://github.com/xxxx/R包名字
比如:easyTCGA
包的下載地址是:https://github.com/ayueme/easyTCGA
打開網(wǎng)址后,按照順序依次點(diǎn)擊:Code-Download ZIP,即可把R包下載到本地了(對(duì)你的網(wǎng)絡(luò)有要求,因?yàn)檫@個(gè)網(wǎng)站也是老外的?。?。
下載github的R包 我下載的R包存放在我的E盤-R-R包,這個(gè)文件夾里面 ,所以存放路徑是:E:/R/R包/easyTCGA-main.zip
此時(shí)安裝包已經(jīng)下載好了,我們可以借助devtools
里面的install_local()
函數(shù)安裝本地R包:
library(devtools) # 注意你的R包存放路徑不要寫錯(cuò)!寫錯(cuò)必報(bào)錯(cuò)! install_local("E:/R/R包/easyTCGA-main.zip")
本地安裝需要注意R包依賴 的問(wèn)題。R包依賴的意思是有些R包是建立在其他R包的基礎(chǔ)上的,所以你在安裝時(shí)需要注意先后順序,必須先安裝某個(gè)包然后才能安裝另一個(gè)包,否則就會(huì)出現(xiàn)安裝失敗。比如easyTCGA
就是建立在很多R包之上,所以如果你沒提前安裝easyTCGA
的依賴包,那么在進(jìn)行本地安裝時(shí)也會(huì)報(bào)錯(cuò)。
這是本地安裝最大的弊端,install.packages()
和BiocManager::install()
在安裝R包時(shí)會(huì)自動(dòng)幫你先安裝依賴包,所以不會(huì)有問(wèn)題。
easyTCGA
有以下依賴包,需要你先安裝好下面的依賴包,才能安裝easyTCGA
:
# 安裝bioconductor上面的依賴R包 # 首先要改鏡像,下面是清華的鏡像,有時(shí)會(huì)有問(wèn)題,可更改其他鏡像試試 options(BioC_mirror="https://mirrors.tuna./bioconductor") if(!require("BiocManager")) install.packages("BiocManager") if(!require("TCGAbiolinks")) BiocManager::install("TCGAbiolinks") if(!require("SummarizedExperiment")) BiocManager::install("SummarizedExperiment") if(!require("DESeq2")) BiocManager::install("DESeq2") if(!require("edgeR")) BiocManager::install("edgeR") if(!require("limma")) BiocManager::install("limma") # 安裝cran上面的依賴R包 if(!require("survival")) install.packages("survival") if(!require("broom")) install.packages("broom") if(!require("devtools")) install.packages("devtools") if(!require("reshape2")) install.packages("reshape2") if(!require("data.table")) install.packages("data.table") if(!require("ggplot2")) install.packages("ggplot2") if(!require("ggpubr")) install.packages("ggpubr")
以上安裝R包的代碼我加了一個(gè)if
判斷語(yǔ)句,意思是:如果我已經(jīng)安裝了這個(gè)R包,就不要重復(fù)安裝了,如果沒安裝,就幫我安裝。
其他安裝方法 除了以上介紹的安裝方法外,還有一些R包的安裝方法比較特殊,這里給大家簡(jiǎn)單介紹下,就以mlr3proba
為例。這個(gè)R包由于一些原因不在CRAN中,如果你要安裝Github版本,可以按照以下代碼安裝:
remotes::install_github("mlr-org/mlr3proba")
但是如果你要使用install.packages()
函數(shù)安裝,需要按照如下方式進(jìn)行:
install.packages("mlr3proba", repos = "https://mlr-org.v")
終極大法 直接百度、谷歌、必應(yīng)。
比如一個(gè)叫linkET
的包,你不知道怎么安裝,直接搜索?。?/p>
R包常見報(bào)錯(cuò) 1. 載入了名字空間'rlang’ 1.0 .1 ,但需要的是>= 1.0 .2 `rlang`包的版本太低了,你需要先安裝1.0 .2 以上版本的`rlang`,記得直接關(guān)閉Rstudio,重新打開再安裝2. 不存在叫'latticeExtra’這個(gè)名字的程輯包 首先看看自己的拼寫錯(cuò)了嗎?標(biāo)點(diǎn)符號(hào)有錯(cuò)誤嗎?沒問(wèn)題就安裝這個(gè)`latticeExtra`包即可3. 程序包安裝入'C:/Users/xxx/AppData/Local/R/win-library /4.2 ’(因?yàn)?lib’沒有被指定) Warning in install.packages : package 'limma’ is not available for this version of R A version of this package for your version of R might be available elsewhere `limma`包在bioconductor上,不在CRAN上,要通過(guò)`BiocManager`安裝。4. 安裝程序包'mapproj’時(shí)退出狀態(tài)的值不是0 大概率依賴包沒裝好。5. library (lsmeans) Error: 找不到'lsmeans’所需要的程輯包'emmeans’ 缺什么就安裝什么。找不到`lsmeans`就安裝`lsmeans`。6. 用devtools從github安裝包,無(wú)論是直接安裝還是本地安裝,都報(bào)timeout錯(cuò)誤 github在國(guó)外,訪問(wèn)國(guó)外的網(wǎng)站你得科學(xué)上網(wǎng),你網(wǎng)絡(luò)行嗎?你能訪問(wèn)谷歌不代表你能從github下載東西。7. 安裝r包時(shí)出現(xiàn):update all/some/none? 問(wèn)你要不要:更新所有R包/部分R包/不更新?輸入n就行了,表示不更新。8. library (tidyverse)出現(xiàn)一大推字 ── Attaching core tidyverse packages ────── tidyverse 2.0 .0 ── ? dplyr 1.1 .2 ? readr 2.1 .4 ? forcats 1.0 .0 ? stringr 1.5 .0 ? ggplot2 3.4 .2 ? tibble 3.2 .1 ? lubridate 1.9 .2 ? tidyr 1.3 .0 ? purrr 1.0 .1 ── Conflicts ──────────────────────── tidyverse_conflicts() ── ? dplyr::filter() masks stats::filter() ? dplyr::lag() masks stats::lag() ? Use the conflicted package to force all conflicts to become errors 正常的,不用管,只要沒有`Error`就沒事。