Comment puis-je déboguer J'utilise actuellement le package Quelqu'un a-t-il d'exemple de code et est prêt à partager? p> rscripts code> qui sont exécutés à partir de la ligne de commande? p>
getopt code> pour passer des options de ligne de commande, écrou quand il y a un bogue, c'est difficile pour moi de: P>
r code> (puisque le script attend les options de ligne de commande.) li>
ol>
3 Réponses :
I Utilisez soit des déclarations d'impression de vieille école, soit une analyse interactive. Pour cela, je sauvegine d'abord l'état à l'aide de mais j'écris souvent / tester / déboguer le code en mode interactif avant de déployer dans un script de pastler. P> Enregistrer () code>, puis chargez-le dans une session interactive (pour laquelle j'utilise EMACSS / ESS). Qui permet un travail interactif à l'aide du code de script sur une base ligne par ligne. P>
Vous pouvez transmettre vos arguments de ligne de commande en une coque interactive avec-args, puis source ('') le script. Vous pouvez maintenant utiliser l'ancienne fonction de navigateur () à Débogage. P> p>
J'ai essayé votre conseil et obtenu ceci :-( > R -I indiva12_aataag -d hmm_data / indiva12_aataag -c Tous les arguments de ligne de commande supplémentaires ("-i indiva12_aatag -c tous") ignorés code>
OK, NEWMIND, j'ai raté la partie où vous avez dit d'utiliser --Args.
Maintenant r ouvre mais je reçois cette erreur: > source ("msg / write-hmm-data.r ') erreur dans if (fichier ==" ") Fichier <- stdin () else {: argument est de longueur zéro> code>
Une autre option consiste à fonctionner avec la fonctionnalité Options (Erreur). Voici un exemple simple: Vous pouvez créer comme étant élaboré un script comme vous le souhaitez sur une condition d'erreur, vous devez donc décider de décider quelles informations dont vous avez besoin pour le débogage. P> Sinon, s'il existe des domaines spécifiques, vous vous préoccupez (par exemple, la connexion à une base de données), puis les envelopper dans une fonction trycatch (). P> P>