2014-11-07 18 views
5

Vorrei pulire la mia sessione R corrente dall'ultimo errore in modo che una prossima chiamata a geterrmessage() sia vuota.Pulisci l'ultimo errore in R

Esempio:

> stop('halt !') 
Error: halt ! 
> geterrmessage() 
[1] "Error: halt !\n" 
> something_that_cleans_the_last_error 
> geterrmessage() 
[1] "" 

Grazie

+4

Non sembra esserci un modo semplice. Vedi questa risposta di Duncan Murdoch su R-help: http://tolstoy.newcastle.edu.au/R/help/06/02/20978.html – sgibb

risposta

0

Dal momento non sembra essere un facile modo per fare questo, qui ci sono alcune alternative:

avviare una nuova istanza di R e esci da quello vecchio:

system("R"); q("no") 

Questo cancellerà completamente lo spazio di lavoro. Se si desidera salvare l'area di lavoro, provare:

save.image(); system("R"); q("no") 

Questo ripristina l'area di lavoro, ma lascerà un file di lavoro persistente .Rdata. Se si desidera rimuovere quello pure:

save.image(); system("R"); unlink('.Rdata'); q("no"); 

Ma si dovrà ancora ricaricare i pacchetti che aveva caricato in precedenza. Cioè, a meno che non si fa:

lp<-(.packages()); save.image(); system("R"); unlink('.Rdata'); q("no"); 
rapply(as.list(lp), library); rm(lp) 

che funziona solo dalla riga di comando, dal momento che la seconda linea deve essere inserito nella nuova shell R.

Nota: in realtà non consiglio questa soluzione.