J'ai un package en R (ROCR) que je dois charger dans mon environnement R. Lors du chargement du colis, un ensemble de messages est imprimé. C'est normalement bien, mais comme la sortie de mon script R est utilisée pour une analyse plus approfondie, je veux désactiver complètement toute cette sortie. Comment je fais ça? De plus, je préférerais le faire sans avoir à modifier ROCR du tout, afin que les futurs utilisateurs de ce script n'aient pas à le faire non plus.
Jusque là:
sink()
ne fonctionne pas ici - rediriger stdout et std err vers /dev/null
ne fait rien pour moi.options(warnings=-1)
ne fait rien non plus, car ce ne sont pas des avertissements, en soi, en cours d'impression.Des pensées?
Utilisez simplement suppressMessages()
autour de votre appel library()
:
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>
réponse de Dirk supprime tous les messages et n'est pas spécifique aux messages générés lors du chargement des packages.
La solution la plus précise à la question posée est:
suppressPackageStartupMessages(library(THE_PACKAGE_NAME))
Une explication un peu plus détaillée peut être trouvée ici
library(ROCR, quietly = TRUE)
pourrait être une option plus élégante.
En ajoutant quietly = T
comme indiqué ci-dessous résoudra le problème:
suppressWarnings(suppressMessages(library("dplyr", quietly = T)))
En cas de package multiple, vous pouvez utiliser:
## specify the package names
PKGs <- c("affy","gcrma","readxl","ggplot2","lattice" )
et ils utilisent lapply comme ci-dessous:
lapply(PKGs, library, character.only = TRUE ,quietly = T)