R包安装的4种姿势

<孤注一掷> 观后感
其中,一句话记忆犹新:人有两个心,一颗贪心,一颗不甘心。
好似世间丰富多彩的动力,又好似人间罪恶的源泉。

日常瞎掰

  之前在<R语言的碎碎念>提到过,R使用起来那么方便的原因之一是函数调用。这些函数来自哪里呢?一部分自然是来自R语言本身,另一部分更实用的功能无疑是来自扩展包的函数。那么,今天咱们就接着往下说,概括一下R包的安装方法。
  根据R包所属于的库,可以将安装方式分为三种,每一种分别借用不同的函数来完成。另外,所有的R包都可以用一种统一的安装方式来解决。下面一起来看看具体是怎么回事。

安装方法

1、CRAN

  R包的官方库,里面有各式各样的包,当然也包括很多可用于生信分析的包。既然是官方库,那安装起来自然是方便的。

install.packages('ggplot2')

  上面的安装命令虽然简洁,但有局限性。如果在服务器上安装,做为分析人员大概率是没有管理员权限,这时默认的R包路径应该也不会有写入的权限,这个时候可以创建一个属于个人的安装路径,用来存放需要的包,集中管理方便使用:

install.packages('ggplot2', lib='~/rlib/r-3.3_lib')

  通过指定lib参数可以自定义包的安装路径,如上面所示,会将包安装在家目录下的rlib子目录里的r-3.3_lib目录里面。当然,这是个人习惯,可以按照自己喜欢的方式来管理。不过,还是要区分不同的R版本,避免版本之间的兼容性问题。安装后,想要加载包也需指定一下个性化的安装路径,否则无法加载:

library('ggplot2', lib.loc='~/rlib/r-3.3_lib')

  上面的方式虽然可以指定个人路径,但每次安装或者使用都要指定一下,这就显得比较麻烦,有没有更便捷的方式呢?答案有两个,一种是利用.libPaths函数修改包的目录;另一种是修改系统的环境变量R_LIBS_USER。这里展示一下前一种方式,感兴趣的可以自行尝试第二种:

.libPaths('~/rlib/r-3.3_lib')

install.packages('ggplot2')
library('ggplot2')

  Tips:如果需要安装多个包,直接以向量的方式提供即可,这就是前面提到过的向量化操作的特性,无需显式地循环,R本身就能基于向量循环:

install.packages(c('ggplot2', 'pheatmap', 'ggpubr', 'ggnewscale'))

  有时候安装会受到网速的限制,这个时候可以尝试将库地址指定为国内的镜像库,只需添加参数repos="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"即可。国内的镜像库有很多,很容易搜索到,这里展示的是清华的镜像库。
  另外,强调一下,这里提到的一些设置和特性也同样适用后面的方法,后续就不再重复了。

2、Bioconductor

  根据库名的前三个字母便可以顾名思义,这个库跟生物相关,收藏了用于生物信息相关的R包。安装此库里面的包时,需要根据R的版本采用不同的策略:

  • R >= 3.5.0
    借助BiocManager包来安装该库里面的包,安装BiocManagerinstall.packages即可。
library(BiocManager)

install("GenomicFeatures")
  • R < 3.5.0
source("https://bioconductor.org/biocLite.R")
biocLite("GenomicFeatures")

3、GitHub

  一般处于开发状态的最新版或者没有发布稳定版的包会放置在github网站上面,如果想尝鲜的话可以安装:

library(devtools)

install_github('satijalab/seurat-data')

4、install.packages
  上面虽然列举出了三种安装方式,本质上后两种都可以被第一种替代,都可以用install.packages来安装。这种方式相对更自由,但也更为麻烦。之前在<clusterProfiler: No gene can be mapped | 怎么破?>中提到,R包之间的相互依赖形成了套娃式的结构,牵一发而动全身。
  采用这种手动的方式就要自己解决依赖包的问题,这可不是什么好主意,所以不推荐用这种浪费时间的方法。除非,你有自己的想法,比如想修改包里面的函数。那么,如果想用这种方式安装时,应该怎么做呢?

  • 首先,在对应的库里面下载R包的压缩包到本地,注意R的版本
  • 再者,检查R包依赖的其他包有没有安装,以上图的ggplot2为例,可以看看其需要导入很多其他的包,Imports那一行所示。如果依赖的包不存在,需要先安装好。
  • 最后,使用install.packages函数安装:
install.packages('ggplot2_3.4.2.tar.gz')

结束语

  R包的前三种安装方式正常情况下都不难,就是不同函数的调用而已,尤其是在windows上面基本不会有问题。最后一种方法,较为麻烦,但有时候却也不失为一种办法,可以用来快速自定义地修改包以到达自己想要的分析需求。根据情况而定选择合适的方式很重要,好的方法可以事半功倍,毕竟时间才是珍贵的存在!


往期回顾

clusterProfiler: No gene can be mapped | 怎么破?
R语言的碎碎念
linux入门学习指南
武林大会之对角线热图
ggplot2 | 绘制双y轴的图型

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

推荐阅读更多精彩内容