7
votes

Qu'a-t-il semblable à un débogage #Ifdef dans R?

J'écris le code R où j'aimerais pouvoir exécuter en mode "non-débogage" ou "débogage". Sous le mode de débogage, j'aimerais que le code imprimer des informations d'exécution.

Dans d'autres langues, j'aurais généralement une sorte de fonction d'impression qui ne fait que si un drapeau est allumé (soit pour la compilation ou l'exécution).

Par exemple, je peux utiliser #IFDEF DEBUG (dans le temps de compilation) ou définir un niveau de débogage au moment de l'exécution.

Quel serait le moyen équivalent de faire cela dans R?

r

0 commentaires

5 Réponses :


9
votes

Même chose, moins le préprocesseur:

  • Définissez une variable de variable globale (ou utilisez une option () valeur)
  • Insérer un code conditionnel qui teste la variable
  • fonctionne avec vos fonctions (ajout ..., verbose = options (myverbose)) , dans vos packages, etc. pp
  • Je l'ai également utilisé dans les scripts R (conduits par Littler ) à l'aide du cran package getopt pour prendre une option de ligne de commande - verbose ou - débogage .

0 commentaires

2
votes

Cela pourrait également valoir la peine d'être consulté sur la classe verbose dans le r.utils package, qui vous permet de contrôler très fin pour l'impression d'informations d'exécution de différentes sortes.


0 commentaires

4
votes

Une version légèrement fantastique de la réponse de Dirk:

set_debug_mode(TRUE)   #turn debug mode on
set_debug_mode(FALSE)  #turn debug mode off


0 commentaires

0
votes

Une autre possibilité est log4r

Pour citer cette page:

log4r: un système de journalisation simple pour R, basé sur log4j

LOGR4 fournit un système de journalisation orienté objet qui utilise une API grossièrement équivalent à log4j et à ses variantes connexes.


0 commentaires

1
votes

Extension du code de Richie:

En outre, vous pouvez vérifier le débogage de la variable de l'environnement système pour l'initialisation: P>

ifdebug(...do something here...)


0 commentaires