R Code de débogage [dupliquer]

cette question a déjà une réponse ici:

si vous avez un bloc de code R, une combinaison de commandes et de fonctions, et que vous voulez déboguer le code, ligne par ligne, et passer en quelque sorte par le processus interne R est derrière la scène avant qu'elle crache un message d'erreur, que les commandes pourrait-on employer? trace() et debug() semblent être juste pour les fonctions. J'essaie d'exécuter tout mon script et de trouver, ligne par ligne, ce que R fait à l'interne le long de chaque ligne de la mention élogieuse.

j'ai cherché dans les archives et j'ai trouvé ceci: Outils de Débogage dans la R - parcourant le code mais hélas sans solution au problème

0
r
demandé sur Community 2013-12-15 01:26:03

3 réponses

essayez la fonction browser . Appuyez sur ' n ' Pour aller étape par étape.

1
répondu Karsten W. 2013-12-14 21:38:56

j'encourage à le faire dans un environnement de développement intégré (IDE) plutôt que de le faire dans le code. Utiliser un IDE permet de garder votre code propre et simple.

j'utilise un IDE appelé "RStudio" ( http://www.rstudio.com ), qui est disponible pour windows, mac et linux et est assez facile à utiliser.

version Newish de Rstudio ont la capacité d'ajouter des points de rupture dans les scripts et les fonctions: pour ce faire, il suffit de cliquer sur la marge gauche du fichier pour ajouter un point de rupture. Vous pouvez définir un point d'arrêt et ensuite étape à partir de ce point. Vous avez également accès à toutes les données de cet environnement, vous pouvez donc essayer des commandes.

voir http://www.rstudio.com/ide/docs/debugging/overview pour plus de détails. Si vous avez déjà installé Rstudio, vous devrez peut - être faire une mise à niveau-il s'agit d'une fonctionnalité relativement nouvelle (fin 2013).

vous pouvez également trouver d'autres IDEs qui ont des fonctionnalités similaires.

1
répondu Andy Clifton 2013-12-14 21:50:46

dans Rstudio, appuyer sur Ctrl+R sans mettre de texte en surbrillance fera tourner le code qui se trouve sur la même ligne que votre curseur. Ensuite votre curseur passe automatiquement à la ligne suivante. Vous pouvez simplement continuer à appuyer sur Ctrl+R pour exécuter votre code ligne par ligne.

Je ne sais pas ce que vous voulez d'autre. Ajouter ; print(whatever) à la fin de chaque ligne est toujours une option aussi, mais cela devient fastidieux.

0
répondu shadowtalker 2013-12-15 09:45:46