R語言實戰(zhàn) | 新手福利~R語言程序包的安裝與使用

"R實戰(zhàn)"專題·第1篇

編輯 | 科白君

本期推送內(nèi)容

R語言程序包的安裝與使用問題最楷。編寫一份完整代碼時需要用到很多不同的函數(shù)踏拜,這意味著需要各種各樣的程序包豆励。目前拳芙,R語言含有1萬多個程序包甚至更多。盡管常用的R包可能只有幾百或上千個埂息,但很多時候初學(xué)者在學(xué)習(xí)時常遇到安裝R程序包的報錯問題技潘。之前,我在安裝export包及其更新時遇到了各種坑耿芹,嘗試了很多種辦法才解決崭篡。這里挪哄,我總結(jié)了以下幾種被廣泛嘗試的安裝方法吧秕,希望對大家有所幫助。

以下是原文鏈接迹炼,想學(xué)習(xí)R語言的朋友可以持續(xù)關(guān)注微信公眾號:科白君的土壤世界


01 R語言程序包的簡介

R語言程序包是函數(shù)砸彬、數(shù)據(jù)、代碼的一個集合斯入。R包中主要包含函數(shù)的含義及用法砂碉,還包括數(shù)據(jù)集和代碼示例等。只有將R包載入R平臺后刻两,其R包里的函數(shù)才能被識別或讀取增蹭。加載后,使用者可以查詢到該R包的所有信息磅摹,有助于編譯代碼滋迈。

02 R語言程序包的主要來源

目前,R包主要來源于三個平臺户誓。

1)CRAN存儲了R最新版本的代碼和文檔的服務(wù)器?(https://cran.r-project.org/)饼灿。

2) 生物信息學(xué)領(lǐng)域的Bioconductor平臺,它提供的R包主要為基因組數(shù)據(jù)分析和注釋工具(https://bioconductor.org/)帝美。

3) 面向開源及私有軟件的第三方平臺--Github碍彭。R包的作者更愿意將其存儲在該平臺,因此很多時候需要在上面下載(https://github.com/)悼潭。

03 檢查可用的R語言程序包

1)我們先查詢當(dāng)前R包的存儲庫位置庇忌,可以通過?.libPaths ( )?函數(shù)完成。

.libPaths () #點.需要注意容易遺漏

得到結(jié)果:電腦本身的R位置和本地位置舰褪,兩條路徑漆枚。

2)獲取所有已經(jīng)安裝的R包列表,利用?library ( )?函數(shù)完成抵知。

library ()

結(jié)果如圖:該路徑下所有R包的列表墙基。

04 R語言程序包的安裝方法

1)?CRAN平臺

我們使用?install.packages("package name")直接從CRAN安裝软族。

install.packages ("vegan")

# 如果要下載多個包

可以用 c ( ) 來實現(xiàn)install.packages (c ("package 1", "package 2", "package 3",···) )?

或手動安裝,先從https://cran.r-project.org/web/packages下載所需的R包残制。把該R包保存著適當(dāng)?shù)谋镜匚恢昧⒃遥缓笤儆么a加載安裝。

install.packages (file_name_with_path, repos = NULL, type = "source")# 例子

install.packages ("C:\Users\ThinkPad\Desktop\vegan_2.5-7.zip", repos = NULL, type = "source")

再或者用以下辦法完成安裝tar.gz/zip格式的程序包初茶。

2)?Bioconductor平臺

與CRAN安裝相似颗祝,先?source ("https://bioconductor.org/biocLite.R")?鏈接到Bioconductor,然后?biocLite ("package name")進行安裝恼布。如果下載過慢螺戳,用chooseBioCmirror ( )?更改鏡像。如果?source?失效折汞,則根據(jù)網(wǎng)站里的介紹選擇BioManager : : install ( )?安裝倔幼。

#如果source無效,則看https://bioconductor.org/installsource("https://bioconductor.org/biocLite.R")

#然后用biocLite("package name")

#以下是https://bioconductor.org/install 的一種方法if(!requireNamespace("BiocManager",quietly=TRUE))

install.packages("BiocManager")BiocManager::install(version="3.10")#這是基于3.6R版本爽待,如果是4.0R版本則使用version="3.12"chooseBioCmirror()#修改下載鏡像

BiocManager::install("ggtreeExtra")

再或者用以下途徑完成BioManager安裝:

install.packages("BiocManager") BiocManager::install("ggtreeExtra")

#指定版本安裝

BiocManager::install("ggtreeExtra",version="4.0")

3)?Github平臺

需要devtools包remotes包進行下載损同。先安裝Rtools軟件,然后安裝devtools或remotes鸟款,然后用?devtools / remotes : : install_github安裝膏燃,需記住作者和程序包的名字。例如YuLab-SMU / ggtreeExtra何什,通常由包的原作者自己取的组哩,各式各樣的名稱都有。

#使用install_github()前需要預(yù)裝rJava处渣、devtools/remotes包#其中windowsJava環(huán)境需要配置伶贰,基本思路是:#先下載安裝jdk,然后添加jdk路徑到新建的系統(tǒng)變量#具體操作流程可以學(xué)習(xí)https://blog.csdn.net/weixin_45915507/article/details/105786961#devtools包

install.packages("devtools")library(c("rJava","devtools"))install_github("YuLab-SMU/ggtreeExtra")

#或者

if(!requireNamespace("devtools",quietly=TRUE)){

install.packages("devtools")

}

devtools::install_github("YuLab-SMU/ggtreeExtra")

#remotes包

install.packages("remotes")

library("remotes")

install_github("YuLab-SMU/ggtreeExtra")

#或者

if(!requireNamespace("remotes",quietly=TRUE)){

install.packages("remotes")

}

remotes::install_github("YuLab-SMU/ggtreeExtra")

此外霍比,有作者開發(fā)了?githubinstall 包幕袱,與CRAN的安裝方式一致,但注意使用前先安裝Rtools軟件悠瞬。安裝時我們僅需輸入包的名稱们豌,即可完成下載。

install.packages("githubinstall")

library("githubinstall")

githubinstall("ggtreeExtra")

05 R語言程序包的使用方法

1) 加載R包的方法:library ("package name")?require ("package name")?函數(shù)浅妆。此外望迎,最近有新的方法可以一次性載入多個R包。先install.packages ("pacman")凌外,然后library ("pacman")辩尊,用該R包中的一個函數(shù)--p_load ( )?函數(shù)完成。即使你所安裝的R包與當(dāng)前R環(huán)境不匹配(package is not avaliable for the R version) 康辑,該函數(shù)仍能夠?qū)ζ浒惭b摄欲。對于pacman包中大部分函數(shù)轿亮,不需要對括號內(nèi)packages使用引號" "

#正常加載程序包的方法

library()

require()

#一次性加載多個程序包的方法

if(!require("pacman"))install.packages("pacman")

library("pkg1"); library("pkg2")? # library (R包名)?用胸墙;?然后記得放在同一行要不然會報錯

library(c("pkg1","pkg2"...))?

#下載pacman包

library("pacman")

#library加載pacman包

p_load(ggplot2,ggthemes,dplyr,readr,showtext,export) #p_load需要pacman包才能運行

2) 查看R包的方法:①查看默認(rèn)加載的R包我注,getOption("defaultPackages")?函數(shù);②查看已加載的R包迟隅,(.packages())?或者?search ( )函數(shù)但骨;③查看所有已安裝的R包,(.packages(all.available = T))智袭、installed.packages()奔缠、library()?函數(shù)。

#查看默認(rèn)加載的R包

getOption("defaultPackages")

#查看已加載的R包

(.packages())

#查看所有已安裝的R包

(.packages(all.available=T))

installed.packages()

library()

3) 卸除或者卸載R包的方法:①卸除R包吼野,非卸載校哎,detach("package:ggplot2")?函數(shù);②卸載一個或者多個包箫锤,remove. packages(c("package1","package2") ..., lib = file.path("path_to_library"))?函數(shù)贬蛙。

# 注意是卸除雨女,而非卸載谚攒,意味著把包從R運行環(huán)境中徹底去除,只是不希望該包被加載使用氛堕。在使用包的同名函數(shù)發(fā)生沖突時馏臭,可以檢驗函數(shù)依賴性。library ("ggplot2") detach ("package:ggplot2") / require ("ggplot2") pkg <- "package:ggplot2"

# "package1","package1"表示包名讼稚,即可以一次性卸載多個包括儒。remove. packages (c ("package1", "package2"), lib = file.path ("path_to_library") )# "path_to_library"表示存儲R包的library路徑,通常情況下只輸一個路徑即可锐想。使用命令.libPaths ( )可以查看庫路徑帮寻。

# 例子 remove.packages (c ("zoom"), lib = file.path ("C:/Program Files/R/R-3.6.1/library") )

4) 咨詢函數(shù)和R包幫助的方法:①help("package name")?函數(shù),如?help ("ggplot2")赠摇,再或者??ggplot2?來查看ggplot2包的幫助(引號可以省略);②example ("ggplot2")?可以查看ggplot2包里的示例;③data ( )?列出當(dāng)前已經(jīng)加載包中所含的所有可用示例的數(shù)據(jù)集褐墅。

# 利用幫助代碼查詢所需要的R包

help ("ggplot2")

# 或者

?ggplot2

# 查看R包里的示例

example ("package name")?

# 列出已加載R包中的所有可用示例的數(shù)據(jù)集

data ( )?

Tips:

1) 使用R包的時候樱调,常常看到成功下載了R包后洽故,我們可以利用R包與函數(shù)名的聯(lián)用代碼贝攒,主要是這個符號" : : "。For exam.时甚,用?devtools : : install_github ( )隘弊。符號: : 表示符號前是R包哈踱,以及符號后為該R包中的函數(shù),這更加明確了代碼梨熙,即某R包下某函數(shù)的運行嚣鄙。或者,我們也可以把代碼分開運行串结。下載完R包后哑子,用 library ( ) 先載入所需R包,然后再直接用函數(shù)運行肌割。

2) 卸除R包的代碼可熟記卧蜓,隨著你R語言知識掌握的越來越多,代碼越來越多把敞,函數(shù)越來越多弥奸,同名函數(shù)也會隨之出現(xiàn),?detach ("package:pkg name")?函數(shù)能幫你奋早。

3) 通常一些函數(shù)名中自帶點 (.)盛霎,這個要注意,非常容易遺漏耽装。網(wǎng)上有些代碼在完成后愤炸,可能沒有檢查,不小心遺漏了 . 掉奄,導(dǎo)致很多初學(xué)者一臉懵逼规个,走了很多彎路,浪費了很多時間姓建。因此诞仓,希望這份推文能夠幫助大家少走彎路吧。

4)?記得用help ()速兔,記得help ()墅拭,記得help (),不懂的一定要學(xué)會用help ( )涣狗。該函數(shù)的功能非常強大谍婉,它如同你學(xué)習(xí)過程中的老師,只要你看的懂英文屑柔,就能把R語言學(xué)好屡萤。


目前,根據(jù)自己所學(xué)的知識以及網(wǎng)上找到的素材掸宛,不能說涵蓋了所有死陆,但足夠初學(xué)者學(xué)習(xí)和使用~ 至于新的知識,需要大家在學(xué)習(xí)時留心喲~


想繼續(xù)學(xué)習(xí)R語言的朋友可以關(guān)注微信公眾號 :科白君的土壤世界

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市措译,隨后出現(xiàn)的幾起案子别凤,更是在濱河造成了極大的恐慌,老刑警劉巖领虹,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件规哪,死亡現(xiàn)場離奇詭異,居然都是意外死亡塌衰,警方通過查閱死者的電腦和手機诉稍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來最疆,“玉大人杯巨,你說我怎么就攤上這事∨幔” “怎么了服爷?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長获诈。 經(jīng)常有香客問我仍源,道長,這世上最難降的妖魔是什么舔涎? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任笼踩,我火速辦了婚禮,結(jié)果婚禮上终抽,老公的妹妹穿的比我還像新娘戳表。我一直安慰自己桶至,他們只是感情好昼伴,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镣屹,像睡著了一般圃郊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上女蜈,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天持舆,我揣著相機與錄音,去河邊找鬼伪窖。 笑死逸寓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的覆山。 我是一名探鬼主播竹伸,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了勋篓?” 一聲冷哼從身側(cè)響起吧享,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎譬嚣,沒想到半個月后钢颂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡拜银,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年殊鞭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尼桶。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡钱豁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出疯汁,到底是詐尸還是另有隱情牲尺,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布幌蚊,位于F島的核電站谤碳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏溢豆。R本人自食惡果不足惜蜒简,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漩仙。 院中可真熱鬧搓茬,春花似錦、人聲如沸队他。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽麸折。三九已至锡凝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垢啼,已是汗流浹背窜锯。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芭析,地道東北人锚扎。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像馁启,于是被迫代替她去往敵國和親驾孔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容