2012-06-18 13 views
6

Io uso cast() dal pacchetto reshape piuttosto frequentemente. Quasi ogni volta, questo avviso si apre:Come sopprimere i messaggi di avviso dal cast()

Aggregation requires fun.aggregate: length used as default

Ho cercato di impostare options(warn =-1), senza alcun risultato. Come si sopprimono questi avvertimenti?

+1

Penso che la ragione 'o ptions ("warn") "non ha effetto è quello che è effettivamente generato da' message' not 'warning'. 'suppressMessages' potrebbe funzionare, ma non conosco un modo per farlo a livello globale. – joran

risposta

11

È possibile specificare manualmente fun.aggregate come lunghezza.

cast(your_inputs_to_cast, fun.aggregate = length) 
11

Aggregation requires fun.aggregate: length used as default

non è message un warning - ti permette di sapere che la funzione come qualcosa di deciso per voi. Penso che l'opzione migliore sia la risposta di @Dason, cioè specificare manualmente questa opzione.

Tuttavia, se non si vuole farlo:

È possibile sopprimere i messaggi avvolgendo la funzione in suppressMessages

Utilizzando l'esempio da cast

names(ChickWeight) <- tolower(names(ChickWeight)) 
chick_m <- melt(ChickWeight, id=2:4, na.rm=TRUE) 

suppressMessages(cast(chick_m, time ~ variable)) 

Oppure si potrebbe creare la tua funzione

cast_suppress <- function(...){suppressMessages(cast(...))} 
cast_suppress(chick_m, time ~ variable) 
Problemi correlati