美文网首页R语言R语言做生信
刷刷刷无障碍安装一摞R包

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

作者: 小洁忘了怎么分身 | 来源:发表于2019-05-27 20:24 被阅读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) 
    #   }
    # }
    

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

    相关文章

      网友评论

        本文标题:刷刷刷无障碍安装一摞R包

        本文链接:https://www.haomeiwen.com/subject/eoektctx.html