R基础笔记——R语言包的安装

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 别人说的话,不可尽信,不论对方说的如何,一定要保持住自己的立场,要有自己的判断;不要一听到别人说了什么,就被困在对...
    小宇宙不要脸阅读 189评论 0 1
  • 每当我感到疼痛 就想让你抱紧我 就像你一直做的那样 触摸我的灵魂 有时我会失去方向 就像天堂上离群的燕子 可是只要...
    北屿情殇阅读 244评论 0 4
  • 关于努力有没有用的问答 问:努力有没有用? 答:不一定有用。 问:那我们为什么要努力? 答:因为努力过的人才有资格...
    萌妈育儿记阅读 716评论 0 11
  • 一 港城的七月骄阳似火,阳光炙烤过的地面让人感觉像是在做铁板烧,下午三点多,太阳西斜,给地面留下了楼房或树木的阴影...
    爬字的蜗牛阅读 328评论 0 0