it-swarm.com.de

Deaktivieren Sie Nachrichten beim Laden eines Pakets

Ich habe ein Paket in R (ROCR), das ich in meine R-Umgebung laden muss. Beim Laden des Pakets wird eine Reihe von Nachrichten gedruckt. Dies ist normalerweise in Ordnung, aber da die Ausgabe meines R-Skripts für die weitere Analyse verwendet wird, möchte ich die gesamte Ausgabe vollständig deaktivieren. Wie mache ich das? Außerdem würde ich es vorziehen, ohne ROCR zu ändern, damit zukünftige Benutzer dieses Skripts dies auch nicht tun müssen.

Bisher:

  • sink() funktioniert hier nicht - das Umleiten von stdout und std err auf /dev/null bringt mir nichts.
  • Es ist nicht überraschend, dass options(warnings=-1) auch nichts unternimmt, da es sich an sich nicht um Warnungen handelt, die gedruckt werden.

Irgendwelche Gedanken?

80
learner

Verwenden Sie einfach suppressMessages() um Ihren library() -Aufruf:

[email protected]:~$ 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> 
131

Dirks Antwort unterdrückt alle Nachrichten und ist nicht spezifisch für Nachrichten, die beim Laden von Paketen generiert werden.

Die genauere Lösung für die gestellte Frage lautet:

suppressPackageStartupMessages(library(THE_PACKAGE_NAME))

Eine etwas ausführlichere Erklärung finden Sie hier

7

library(ROCR, quietly = TRUE) ist möglicherweise eine elegantere Option.

1
Andrei Martins

Beim Hinzufügen quietly = T wie unten gezeigt löst das Problem:

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

Bei mehreren Paketen können Sie verwenden:

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

und sie verwenden lapply wie folgt:

lapply(PKGs, library, character.only = TRUE ,quietly = T)
0
Yousef