本文的代码用于安装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)
# }
# }
这里只是示例,不需要运行,报错某某包不存在,就要安装某某包,依然用循环。
网友评论