? ? ? R語(yǔ)言的一大優(yōu)勢(shì),是可以整合功能豐富的各種函數(shù)集合,也就是“包”(package)。但由于R的高度自由性,各種版本的包之間有可能會(huì)有兼容問(wèn)題,導(dǎo)致各種bug層出不窮,令人頭禿
? ? ? 本文總結(jié)了個(gè)人使用R的過(guò)程中遇到的一些安裝包的問(wèn)題及解決辦法,希望對(duì)廣大學(xué)子有所幫助
包(package)的安裝方法及debug
1)從官方服務(wù)器CRAN下載:
首先檢查CRAN的鏡像是否正確:在Rstudio中選擇Tools-->Global Options-->Packages選項(xiàng)中的CRAN mirror。點(diǎn)擊Change按鈕修改到中國(guó)的鏡像(此處推薦清華鏡像),修改后點(diǎn)擊確認(rèn)按鈕。

之后運(yùn)行代碼:
install.packages("package_name")
"package_name"中填寫(xiě)包的名字,必須有引號(hào)
這一步最常見(jiàn)的報(bào)錯(cuò):
package ‘package_name’ is not available (for R version 3.6.1)?
出現(xiàn)這條信息,說(shuō)明沒(méi)有安裝上。
①首先檢查有沒(méi)有連網(wǎng),有沒(méi)有拼寫(xiě)錯(cuò)誤,有沒(méi)有忘加引號(hào)。
②確保網(wǎng)絡(luò)連接的情況下,可以換一個(gè)CRAN鏡像,如果中國(guó)的鏡像不行,就改成國(guó)外的。
③如果因?yàn)榘姹締?wèn)題不能安裝,比如這個(gè)包是基于R 2.5制作的,可能在R 3.6中不能直接安裝。那么就需要手動(dòng)去cran上下載安裝包(一般是.tar.gz結(jié)尾的),運(yùn)行.libPaths()函數(shù)查詢library的儲(chǔ)存路徑,解壓后把對(duì)應(yīng)名字的文件夾直接復(fù)制進(jìn)library。
步驟③中的安裝也可以通過(guò)Rstudio菜單欄中Tools-->install packages-->選擇本地文件完成安裝。
④如果安裝成功,但加載時(shí)提醒有個(gè)別內(nèi)置包版本不夠,例如:
warning message: 程輯包‘xxx’是用R版本3.2.1來(lái)建造的
可以先忽略,如果所需函數(shù)不能正常調(diào)用,再用步驟③的方法安裝對(duì)應(yīng)的內(nèi)置包。
【ps. R包在大版本號(hào)(第一個(gè)“.”前的符號(hào))中一般是向下兼容的,但大版本間不兼容——eg. 3.6.3版本的R程序,兼容基于3.4.2版本制作的包,但不兼容基于2.5.2版本制作的包】
2)從github上安裝包:
? ? ? github上有很多大神自己寫(xiě)的功能非常豐富的包,例如做PCA的ggbiplot,給分面圖設(shè)置自定義坐標(biāo)范圍的facetscales等。
安裝方法:
①先安裝devtools 包,再裝對(duì)應(yīng)的Github包。這種方法需要知道作者的Github ID如下"zeehio"是“facetscales”的作者
install.packages("devtools")
library(devtools)
devtools::install_github("zeehio/facetscales")
devtools::install_github("vqv/ggbiplot")
安裝后就和別的包一樣用library()加載
②不用以上方法的話,也可以用githubinstall包直接安裝
install.packages("githubinstall")
library(githubinstall)
install_github("facetscales")?
3) “乾坤大挪移”法
這個(gè)方法針對(duì)怎么都沒(méi)法裝包的情況:
先從CRAN或Github下載包的壓縮包(CRAN里一般是.tar.gz格式,Github一般是ZIP格式),解壓后找到文件夾下名稱為“R”的文件,里面的.R文件(就是R的腳本文件)包含其中所有函數(shù)的代碼,用文本瀏覽器或Rstudio打開(kāi),運(yùn)行一次,定義里面的函數(shù),就能自己瀟灑調(diào)用了~
Github里的代碼展示更為人性化,只要找到包所對(duì)應(yīng)的R文件夾,可以直接復(fù)制網(wǎng)頁(yè)版的代碼運(yùn)行,“白嫖”代碼成功~
【ps. 這里補(bǔ)充一個(gè)知識(shí)點(diǎn),R包不是啥神秘的東西,它們也是一個(gè)個(gè)函數(shù)的組合,只是打包的“一堆函數(shù)”,所以上面這步的操作其實(shí)是繞過(guò)install這一步,自己去運(yùn)行并且定義包里面的函數(shù)?!?/p>
最后的最后,如果以上方法均試過(guò),還報(bào)兼容性錯(cuò)誤,請(qǐng)重啟R, Rstudio還有電腦。真的有效,多次救本人于水火,一定要試試哦~
最后祝大家用R用得越來(lái)越6,學(xué)業(yè)有成