Comment générer vos propres messages d'erreur dans r

Générer vos propres messages peut sembler étrange, mais vous pouvez effectivement éviter des bugs dans R en générant vos propres erreurs. Rappelez-vous l'erreur de logique dans le logitpercent ()

Sommaire

fonctionner? Il aurait été plus facile à repérer si le logit () fonction a retourné une erreur en disant que vous avez passé un nombre supérieur à 1.

Ajout d'erreur sensible (ou avertissement) messages à une fonction peut aider à déboguer futures fonctions où vous appelez à nouveau cette fonction spécifique. Elle contribue en particulier à trouver des erreurs sémantiques ou logiques qui sont autrement difficiles à trouver.

Comment créer des messages d'erreur dans R

Vous pouvez dire à R de jeter une erreur en insérant le Arrêtez() fonctionner n'importe où dans le corps de la fonction, comme dans l'exemple suivant:

logit lt; - la fonction (x) x> 1)) arrêt ('x pas entre 0 et 1) log (x / (1 - x))



Avec le if () déclaration, vous tester si une valeur quelconque X est compris entre 0 et 1. Utilisation de la quelconque() fonction autour de la condition permet à votre code fonctionne avec des vecteurs complets à la fois, au lieu d'avec des valeurs simples. Parce que le log () œuvres de fonction vectorisée ainsi, toute la fonction est désormais vectorisés.

Si vous modifiez le corps de la logit () fonction de cette façon et essayer de calculer le logit de 50% et 150% (ou 0,5 et 1,5), R renvoie une erreur comme celle-ci:

> Logitpercent (c ('50% ',' 150% ')) Erreur dans logit (as.numeric (x) / 100): x pas entre 0 et 1

Comme son nom l'indique, l'exécution du code arrête tout moment la Arrêtez() la fonction est effectivement réalisée extérieur par conséquent, il ne retourne pas de résultat.

Comment créer des messages d'avertissement dans R

Vous pouvez aussi faire la fonction de générer un avertissement au lieu d'une erreur. De cette façon, vous obtenez toujours la même information, mais la fonction complète est effectuée de sorte que vous obtenez un résultat aussi.

Pour générer un avertissement, utilisez le Attention() fonction à la place de la Arrêtez() fonction. Donc, pour obtenir le résultat de votre collègue veut, vous changez simplement le corps de la fonction pour le code suivant:

 X lt; - ifelse (x lt; 0 | x> 1, NA, x) si (quelle (is.na (x))) avertissement ('x pas entre 0 et 1) log (x / (1 - x))

Si vous essayez la fonction maintenant, vous obtenez le résultat souhaité:

> Logitpercent (c ('50% ',' 150% ')) [1] du message 0 NAWarning: En logit (as.numeric (x) / 100): x pas entre 0 et 1

Non seulement le retour de la fonction N / A quand il le devrait, mais il vous donne aussi un avertissement qui peut aider avec le débogage d'autres fonctions qui utilisent le logit () fonction quelque part dans le corps.


» » » » Comment générer vos propres messages d'erreur dans r