R语言R语言做生信

刷刷刷无障碍安装一摞R包

2019-05-27  本文已影响22人  小洁忘了怎么分身

本文的代码用于安装CRAN和Bioconductor上的包,不需要区分来源,区分代码,可以一次安装多个包。

step1:从Global Options设置R包安装镜像

Tools-Global Options-package-选择合肥的中科大镜像。


step2:代码设置镜像 双重保险

options(CRAN="https://mirrors.ustc.edu.cn/CRAN/")

step3:准备好BiocManger

Bioconductor上的包用BiocManger安装,所以先安装它。
也需要设置镜像。

if(!require("BiocManager")) install.packages("BiocManager",update = F,ask = F)
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")

setp4:刷刷刷安装

将你要安装的包写进一个向量,取名为packages,例如我本次需要安装以下五个包。
注意此处需要更改

packages <- c('tidyverse',
              'RColorBrewer',
              'DESeq2',
              'pheatmap',
              'DEGreport') 

然后开始循环,一切提示信息都忽略

for (pkg in packages){
  if (! require(pkg,character.only=T) ) {
    install.packages(pkg,ask = F,update = F)
    require(pkg,character.only=T) 
  }
  if (! require(pkg,character.only=T) ){
    BiocManager::install(pkg,ask = F,update = F)
    require(pkg,character.only=T) 
  }
}

step5:查漏补缺,安装有报错的包

先理解一下依赖包
开发者在写包(A)的时候,通常会把自己的函数(B)建立在别的函数(C)基础上,而别的函数又从属于某个别的包(D)。因此,你想用A包里的B函数,就必须一同安装D包。D包就是A包的“依赖包”。
通常情况下依赖包不止一个。它们会被自动安装,如果出现这样的报错:


就说明你安装clusterProfiler失败,因为GO.db这个依赖包没有被安装成功。你需要单独安装GO.db,再安装clusterProfiler。

循环安装也无法跳开这个问题,只能让报错集中起来。

for (pkg in packages){
  require(pkg,character.only=T) 
}

如果这里的运行结果如下图,没有任何反应,返回一个大于号,说明全部安装成功了:


包安装失败,多半是依赖包没有自动安装成功,需要你安装好依赖包后再重新安装。
将报错里的依赖包写进一个向量,再次用step4的循环安装,例如:

# x=c("rlang",
# "Rcpp",
# "AnnotationDbi",
# "KEGG.db",
# "GSEABase",
# "GSVA",
# "genefu")
# for (pkg in x){
#   if (! require(pkg,character.only=T) ) {
#     install.packages(pkg,ask = F,update = F)
#     require(pkg,character.only=T) 
#   }
#   if (! require(pkg,character.only=T) ){
#     BiocManager::install(pkg,ask = F,update = F)
#     require(pkg,character.only=T) 
#   }
# }

这里只是示例,不需要运行,报错某某包不存在,就要安装某某包,依然用循环。

上一篇 下一篇

猜你喜欢

热点阅读