2011-12-30 9 views
59

Ho un pacchetto in R (ROCR) che ho bisogno di caricare nel mio ambiente R. Al caricamento del pacchetto, viene stampato un set di messaggi. Questo è normale, ma poiché l'output del mio script R viene utilizzato per ulteriori analisi, voglio disabilitare completamente tutto questo output. Come lo faccio? Inoltre, preferirei farlo senza dover modificare ROCR, in modo che anche i futuri utenti di questo script non debbano farlo.Disabilita i messaggi al caricamento di un pacchetto

Finora:

  • sink() non funziona qui - riorientare sia stdout e std err a /dev/null non fa nulla per me.
  • Non sorprende che options(warnings=-1) non faccia nulla, poiché questi non sono avvisi di per sé, essendo stampati.

Qualche idea?

+0

Quali messaggi vengono stampati? –

+0

Mentre l'intero output non è necessario, le prime righe sono: 'Caricamento del pacchetto richiesto: gplots Caricamento del pacchetto richiesto: gtools Caricamento del pacchetto richiesto: gdata' - Si noti che non consente di formattare il messaggio correttamente. – learner

+0

Quindi carica 'gplots',' gtools' e 'gdata' prima di caricare' ROCR'. –

risposta

96

Basta usare suppressMessages() intorno al vostro library() chiamata:

[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> 
+6

Non si suppone di utilizzare 'suppressPackageStartupMessages'? – hadley

+6

Nessun guadagno netto oltre a spendere X più caratteri. Inoltre 'suppressPackageStartupMessages' sopprime solo _startup messages_ dove il mio preferito' suppressMessages() 'sopprime tutti i messaggi (ma non' cat() 'come ricordo). Ma non si dovrebbe usare quello nel testo di avvio. –

+1

È anche fantastico che il suggerimento di Dirk sopprima i messaggi dai pacchetti dipendenti anche quando vengono caricati. –

Problemi correlati