2010-06-28 11 views
8

Sto scrivendo alcune note R con Sweave e vorrei mostrare errori comuni. Ad esempio,Visualizzazione errori con sweave

<<echo=TRUE, eval=TRUE>>= 
x = 5 
#Case matters! 
x*X 
@ 

Tuttavia, durante la sweaving, il documento non verrà compilato a causa dell'errore R. C'è un modo per compilare la compilazione e mostrare l'errore (ben formato)?

risposta

5

Come suggerisce Shane, utilizzare

<<echo=TRUE,eval=FALSE>> 

per il codice che verrà errore, ma si desidera visualizzare, e poi di nuovo con

<<echo=FALSE,eval=TRUE,results=verbatim>> 

ma con lo stesso codice avvolto in una prova.

C'è un esempio qui: http://tolstoy.newcastle.edu.au/R/help/05/09/11690.html

2

Avvolgere l'errore in un comando try(). Poi sarà continuare a correre:

> {print(1); try(x*X); print(2)} 
[1] 1 
Error in try(x * X) : object 'X' not found 
[1] 2 
+0

Ho pensato a questo, ma vorrei evitare di visualizzare 'try' – csgillespie

+1

Il mio altro pensiero è che potrebbero esserci delle opzioni (error = some.function) che potrebbero funzionare, ma non riesco a trovare nulla. È possibile chiamare ogni pezzo di codice due volte: una volta con try ed echo = FALSE ma eval = TRUE e acquisire il messaggio di errore. Poi una volta senza provare e le impostazioni invertite. Quindi stampare il messaggio di errore separatamente. – Shane

8

Questo è un non-problema con knitr, la "prossima generazione Sweave", se così posso dire. Visualizza gli errori e gli avvisi di default, che era difficile o impossibile in Sweave, insieme a una miriade di altre caratteristiche interessanti (come la colorazione della sintassi, l'integrazione PGF e l'animazione trama, per i principianti). È sviluppato e mantenuto anche attivamente.

Sweave codice deve essere convertito una volta utilizzando la funzione Sweave2knitr fornita dallo stesso pacchetto.

Problemi correlati