2010-06-28 6 views
8

Estoy escribiendo algunas notas R con Sweave y me gustaría mostrar errores comunes. Por ejemplo,Mostrar errores con sweave

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

Sin embargo, al repasar, el documento no se compilará debido al error R. ¿Hay alguna forma de hacer sweave compilar y mostrar el error (formateado)?

Respuesta

2

Envuelva su error en un comando try(). A continuación, se mantendrá en funcionamiento:

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

Pensé en eso, pero me gustaría evitar mostrar 'try' – csgillespie

+1

Mi otro pensamiento fue que podría haber una opción (error = alguna.función) que podría funcionar, pero no puedo encontrar nada. Puede llamar a cada fragmento de código dos veces: una vez con try y echo = FALSE pero eval = TRUE y capturar el mensaje de error. Entonces una vez sin probar y la configuración invertida. Luego simplemente imprima el mensaje de error por separado. – Shane

8

Este es un problema no con knitr, la "próxima generación Sweave", si se me permite decirlo. Muestra errores y advertencias por defecto, lo que era difícil o imposible en Sweave, junto con una plétora de otras características agradables (como la coloración de sintaxis, la integración de PGF y la animación de la trama, para empezar). También se desarrolla y mantiene activamente.

Sweave código debe convertirse una vez con la función Sweave2knitr proporcionada por el mismo paquete.

Cuestiones relacionadas