2010-06-28 7 views
8

J'écris des notes R avec Sweave et j'aimerais montrer des erreurs courantes. Par exemple,Affichage d'erreurs avec sweave

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

Toutefois, lorsque sweaving, le document ne compilera pas en raison de l'erreur de R. Existe-t-il un moyen de compiler sweave et de montrer l'erreur (joliment formulée)? Enveloppez votre erreur dans une commande try().

Répondre

2

Ensuite, il va continuer à fonctionner:

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

Je pensais à cela, mais je voudrais éviter d'afficher 'essayer' – csgillespie

+1

Mon autre pensée était qu'il pourrait y avoir une option (erreur = un peu de fonction) qui pourrait fonctionner, mais je ne trouve rien. Vous pouvez appeler chaque partie de code deux fois: une fois avec un essai et echo = FALSE mais eval = TRUE et capturez le message d'erreur. Puis une fois sans l'essai et les paramètres inversés. Ensuite, imprimez simplement le message d'erreur séparément. – Shane

8

Ceci est un non-problème avec knitr, la « prochaine génération Sweave », si je puis dire. Il affiche des erreurs et des avertissements par défaut, ce qui était difficile ou impossible en Sweave, avec une pléthore d'autres fonctionnalités intéressantes (comme la coloration syntaxique, l'intégration PGF et l'animation de tracé, pour les débutants). Il est développé et maintenu activement, aussi.

Sweave Le code doit être converti une fois en utilisant la fonction Sweave2knitr fournie par le même package.