Disable messages upon loading a package

后端 未结 5 1931
名媛妹妹
名媛妹妹 2020-11-27 15:49

I have a package in R (ROCR) that I need to load in my R environment. Upon loading the package, a set of messages are printed. This is ordinarily fine, but since the outpu

相关标签:
5条回答
  • 2020-11-27 15:57

    Just use suppressMessages() around your library() call:

    edd@max:~$ R
    
    R version 2.14.1 (2011-12-22)
    Copyright (C) 2011 The R Foundation for Statistical Computing
    ISBN 3-900051-07-0
    Platform: x86_64-pc-linux-gnu (64-bit)
    [...]
    
    R> suppressMessages(library(ROCR))
    R>                                               # silently loaded
    R> search() 
     [1] ".GlobalEnv"         "package:ROCR"         # it's really there      
     [3] "package:gplots"     "package:KernSmooth"
     [5] "package:grid"       "package:caTools"   
     [7] "package:bitops"     "package:gdata"     
     [9] "package:gtools"     "package:stats"     
    [11] "package:graphics"   "package:grDevices" 
    [13] "package:utils"      "package:datasets"  
    [15] "package:methods"    "Autoloads"         
    [17] "package:base"      
    R> 
    
    0 讨论(0)
  • 2020-11-27 15:57

    Dirk's answer suppresses all messages and is not specific to messages that is generated while loading packages.

    The more accurate solution to the asked question is:

    suppressPackageStartupMessages(library(THE_PACKAGE_NAME))
    

    A bit more detailed explanation can be found here

    0 讨论(0)
  • 2020-11-27 16:11

    library(ROCR, quietly = TRUE) might be a more elegant option.

    0 讨论(0)
  • 2020-11-27 16:11

    By adding quietly = T as shown below will solve the issue:

    suppressWarnings(suppressMessages(library("dplyr", quietly = T)))
    

    In case of multiple package you can use :

    ## specify the package names
    PKGs <- c("affy","gcrma","readxl","ggplot2","lattice" )
    

    and them use lapply as below:

    lapply(PKGs, library, character.only = TRUE ,quietly = T)
    
    0 讨论(0)
  • 2020-11-27 16:14

    Use suppressPackageStartupMessages, see the answer by @MehradMahmoudian. For completeness, adding examples of usage:

    For one library, use suppressPackageStartupMessages(...), for example:

    suppressPackageStartupMessages(library(ggplot2))
    

    For multiple libraries, use suppressPackageStartupMessages({...}), for example:

    suppressPackageStartupMessages({
        library(ggplot2)
        library(ggdendro)
    })
    
    0 讨论(0)
提交回复
热议问题