Wie man weiß, wenn man über Warnungen in R Pflege

Fehler und Warnungen haben unterschiedliche Funktionen in R Sie Fehler nicht umgehen können, weil sie den Code einfach aufhören. Warnungen auf der anderen Seite sind ein ganz anderes Tier. Auch wenn R eine Warnung auslöst, setzt er den Code unabhängig auszuführen. Sie können Warnungen ignorieren, aber das ist im Allgemeinen eine ziemlich schlechte Idee. Warnungen sind oft das einzige Zeichen Sie haben, dass Ihr Code eine semantische oder logische Fehler aufweist.

Zum Beispiel könnten Sie haben über das vergessen ansonsten() Funktion und versuchte, so etwas wie das folgende Beispiel:

> x lt; - 01.10> y lt; - wenn (x lt; 5) 0 sonst 1WArnUng Nachricht: In if (x lt; 5) 0 sonst 1: Der Zustand hat eine Länge> 1 und nur das erste Element wird verwendet werden,

Diese Warnung zeigt auf einem semantischen Fehler: ob erwartet einen einzigen WAHR oder FALSCH Wert, aber sofern Sie eine ganze Vektor. Beachten Sie, dass, wie Fehler, Warnungen sagen Sie im Allgemeinen die Code die Warnung generiert hat.

Hier ist eine weitere Warnung, die regelmäßig erscheint und zu einem semantischen oder logischer Fehler hinweisen im Code:

> x lt; - 4> sqrt (x - 5) [1] NaNWarning Nachricht: In sqrt (x - 5): NaNs produziert

weil x - 5 ist negativ, wenn x 4 ist, R nicht die Quadratwurzel zu berechnen und warnt Sie, dass die Quadratwurzel aus einer negativen Zahl ist keine Zahl (NaN).

Wenn Sie ein Mathematiker sind, können Sie darauf hin, dass die Quadratwurzel von -1 ist 0 - 1 i. R kann in der Tat zu tun Berechnungen mit komplexen Zahlen, aber dann müssen Sie Ihre Variablen als komplexe Zahlen definieren. Sie können prüfen, zum Beispiel in der Hilfedatei ?Komplex für mehr Informationen.

Obwohl die meisten Warnungen führen entweder semantische oder logische Fehler in Ihrem Code, sogar eine einfache Syntax-Fehler kann eine Warnung anstelle eines Fehlers zu erzeugen. Wenn Sie ein paar Punkte in R darstellen möchten, verwenden Sie die Grundstück() Funktion. Es dauert ein Argument col die Farbe der Punkte, welche aber man könnte irrtümlich versuchen, die Punkte zu färben, mit dem folgenden:

> Grundstück (1:10, 10: 1, color = 'grün')

Wenn Sie dies versuchen, erhalten Sie sechs Warnmeldungen auf einmal, alles zu sagen, dass Farbe ist wahrscheinlich nicht für Sie das Argument Name gesucht:

Warnmeldungen: 1: In plot.window (...): "Farbe" ist kein grafisches parameter2: In plot.xy (xy, Typ, ...): "Farbe" ist keine grafische Parameter ....

Beachten Sie, dass die Warnmeldungen weisen nicht zu dem Code, den Sie in der Befehls line- getippt statt, weisen sie auf Funktionen, die Sie noch nie benutzt, wie plot.window () und plot.xy ().

Sie können Argumente von einer Funktion zur anderen mit dem Punkte Argument übergeben. Das ist genau das, was Grundstück() hier tut. Damit, Grundstück() selbst generiert keine Warnung, aber jede Funktion, die Grundstück() geht die Farbe Argument tut.

Wenn Sie erhalten Warnungen oder Fehlermeldungen, eine gründliche Blick auf den Hilfeseiten der Funktion (en), die den Fehler erzeugt helfen kann, zu bestimmen, was der Grund für die Nachricht ist, dass Sie bekam. Zum Beispiel auf der Hilfeseite von ?plot.xy, Sie feststellen, dass der richtige Name für das Argument ist col.

So, zusammenzufassen, zeigen die meisten Warnungen an einem der folgenden Probleme:

  • Die Funktion hat Ihnen ein Ergebnis, aber aus irgendeinem Grund, dass Ergebnis nicht korrekt ist.

  • Die Funktion erzeugt ein atypisches Ergebnis, wie N / A oder NaN Werte.

  • Die Funktion konnte nicht mit einigen der Argumente beschäftigen und ignorierte sie.

Nur der letzte sagt Ihnen, ein Problem mit der Syntax gibt. Für die anderen, müssen Sie Ihren Code ein bisschen mehr zu untersuchen.

Menü