Comment savoir quand se soucier des avertissements dans r

Erreurs et avertissements ont des fonctions différentes dans la R Vous ne pouvez pas contourner erreurs, parce qu'ils arrêtent juste votre code. Avertissements d'autre part sont toute une bête différente. Même si R lance un avertissement, il continue à exécuter le code indépendamment. Vous pouvez ignorer les avertissements, mais en général, voilà une jolie mauvaise idée. Les avertissements sont souvent le seul signe que vous avez votre code a une erreur sémantique ou logique.

Par exemple, vous pourriez avez oublié le sinon() fonction et a essayé quelque chose comme l'exemple suivant:

> X lt; - 01:10> Y lt; - si (x lt; 5) 0 sinon 1AVERTISSEMENT message: En si (x lt; 5) une autre 0: la condition a une longueur> 1 et que le premier élément est utilisé

Ce point d'alerte à une erreur sémantique: si attend un seul VRAI ou FAUX valeur, mais vous avez fourni tout un vecteur. Notez que, tout comme les erreurs, avertissements vous indiquent en général dont le code a généré l'avertissement.

Voici un autre avertissement qui apparaît régulièrement et peuvent pointer vers une erreur sémantique ou de la logique dans votre code:

> X lt; - 4> sqrt (x - 5) [1] message d'NaNWarning: En sqrt (x - 5): NaNs produit

Car x - 5 est négatif lorsque X est 4, R ne peut pas calculer la racine carrée et vous avertit que la racine carrée d'un nombre négatif est pas un nombre (NaN).




Si vous êtes un mathématicien, vous pouvez remarquer que la racine carrée de -1 est 0 - 1i. R peut, en fait, faire des calculs sur les nombres complexes, mais alors vous devez définir vos variables comme nombres complexes. Vous pouvez vérifier, par exemple, le fichier d'aide ?complexe pour plus d'information.

Bien que la plupart des avertissements résulter soit d'erreurs sémantiques ou logiques dans votre code, même une simple erreur de syntaxe peut générer un avertissement au lieu d'une erreur. Si vous voulez tracer quelques points dans R, vous utilisez le plot () fonction. Elle prend un argument col pour spécifier la couleur des points, mais vous risquez d'essayer de colorer les points à l'aide de ce qui suit:

> Plot (1:10, 10: 1, color = 'green')

Si vous essayez, vous obtenez six messages d'avertissement à la fois, tout ce que vous dites que couleur est probablement pas le nom de l'argument que vous recherchez:

Messages d'avertissement: 1: Dans plot.window (...): "couleur" est pas un paramètre2 graphique: Dans plot.xy (xy, type, ...): "couleur" est pas un paramètre graphique ....

Notez que les messages d'avertissement ne pointent pas vers le code que vous avez tapé à la commande ligne- place, ils pointent vers des fonctions que vous jamais utilisé auparavant, comme plot.window () et plot.xy ().

Vous pouvez passer des arguments d'une fonction à l'autre en utilisant l'argument de points. Voilà exactement ce que plot () le fait ici. Ainsi, plot () lui-même ne génère pas un avertissement, mais chaque fonction plot () passe le couleur argument de fait.

Si vous obtenez des messages d'erreur ou d'avertissement, un regard approfondi sur les pages d'aide de la fonction (s) qui a généré l'erreur peut aider à déterminer quelle est la raison pour le message que vous avez obtenu. Par exemple, à la page d'aide de ?plot.xy, vous trouvez que le nom correct pour l'argument est col.

Donc, pour résumer, la plupart des avertissements indiquent l'un des problèmes suivants:

  • La fonction que vous a donné un résultat, mais pour quelque raison ce résultat peut ne pas être correcte.

  • La fonction a généré un résultat atypique, comme N / A ou NaN des valeurs.

  • La fonction ne pouvait pas faire face à certains des arguments et ignorés.

Seul ce dernier vous dit qu'il ya un problème avec votre syntaxe. Pour les autres, vous devez examiner votre code un peu plus.


» » » » Comment savoir quand se soucier des avertissements dans r