Hinweise zum Umgang mit Unendlichkeit in R

In einigen Fällen müssen Sie nicht auf reale Werte mit zu berechnen. In den meisten realen Datensätzen in Forschung, in der Tat, zumindest ein paar Werte fehlen. Außerdem haben einige Berechnungen infinity als Ergebnis (wie Division durch Null) oder gar nicht durchgeführt (beispielsweise unter den Logarithmus eines negativen Wertes) werden kann. Zum Glück kann R mit all diesen Situationen umgehen.

Mit Unendlichkeit

So starten Sie die Unendlichkeit zu erkunden in R, sehen, was passiert, wenn man durch Null zu teilen versuchen:

> 2/0 [1] Inf

R erfahren Sie richtig das Ergebnis ist Inf, oder unendlich. Negative Unendlichkeit wird gezeigt, wie -Inf. Sie können verwenden Inf so wie man eine reelle Zahl in Berechnungen verwenden:

> 4 - Inf [1] -Inf

Um zu überprüfen, ob ein Wert endlich ist, verwenden Sie die Funktionen is.finite () und is.infinite (). Die erste Funktion zurückkehrt WAHR wenn die Zahl endlicher die zweite Renditen WAHR wenn die Zahl unendlich ist.

R hält alles größer als die größte Zahl ein Computer aufnehmen kann unendlich zu sein - auf den meisten Maschinen, das ist etwa 1,8 x 10308. Diese Definition der Unendlichkeit kann zu unerwarteten Ergebnissen führen, wie im folgenden Beispiel gezeigt:

> Is.finite (10 ^ (305: 310)) [1] TRUE TRUE TRUE TRUE FALSE FALSE

Was bedeutet diese Zeile Code bedeuten jetzt? Schauen Sie, ob Sie die Verschachtelung und Vektorisierung in diesem Beispiel zu verstehen. Wenn Sie die Zeile ausgehend von den inneren Klammern brechen, wird es verständlich:

  • Sie wissen bereits, dass 305: 310 gibt Ihnen einen Vektor, die ganzen Zahlen von 305 bis 310 enthält.

  • Alle Betreiber sind vektorisiert, so 10 ^ (305: 310) gibt Ihnen einen Vektor mit den Ergebnissen von 10 zur Leistung von 305, 306, 307, 308, 309 und 310.

  • Das Vektor wird als Argument gegeben is.finite (). Diese Funktion sagt Ihnen, dass die beiden letzten Ergebnisse - 10 ^ 309 und 10 ^ 310 - unendlich sind für R.

Der Umgang mit nicht definierten Ergebnissen

Ihr Mathematiklehrer wahrscheinlich erklärt, dass, wenn Sie eine reelle Zahl von unendlich teilen, Sie Null zu bekommen. Aber was, wenn Sie teilen Unendlichkeit von Unendlichkeit?

> Inf / Inf [1] NaN

Nun, R sagt Ihnen, dass das Ergebnis ist NaN. Dieses Ergebnis bedeutet einfach Not a Number. Dies ist R Weg, Ihnen zu sagen, dass das Ergebnis dieser Berechnung ist nicht definiert.

Das Komische ist, dass R hält tatsächlich NaN sein numerisches können, so dass Sie verwenden NaN in Berechnungen. Das Ergebnis dieser Berechnungen ist immer NaN, obwohl, wie Sie hier sehen:

> NaN + 4 [1] NaN

Sie können testen, ob eine Berechnung ergibt NaN durch die Verwendung von is.nan () Funktion. Beachten Sie, dass sowohl is.finite () und is.infinite () Rückkehr FALSCH wenn Sie testen auf ein NaN Wert.

Der Umgang mit fehlenden Werten

Eines der häufigsten Probleme in der Statistik ist unvollständig Datensätze. Um mit fehlenden Werten verwendet R das reservierte Schlüsselwort N / A, das steht für Nicht verfügbar. Sie können verwenden N / A als gültiger Wert, so können Sie es als Wert zuweisen als auch:

> x lt; - NA

Sie müssen berücksichtigen Sie jedoch, dass Berechnungen mit einem Wert von N / A auch in der Regel zurückgeben N / A als Ergebnis:

> X + 4 [1] NA> log (x) [1] NA

Wenn Sie testen möchten, ob ein Wert N / A, Sie können die Verwendung is.na () Funktion, wie folgt:

> Is.na (x) [1] TRUE

Beachten Sie, dass die is.na () Funktion auch wieder WAHR wenn der Wert NaN. die Funktionen is.finite (), is.infinite (), und is.nan () Rückkehr FALSCH für N / A Werte.

Berechnung unendlich, nicht definiert, und fehlende Werte

Die folgende Tabelle gibt einen Überblick über die Ergebnisse der oben beschriebenen Funktionen. Sie sind unwahrscheinlich, dass diese zu verwenden, mit Ausnahme von is.na (), denen kann man ziemlich viel verwenden!

FunktionInf-InfNaNN / A
is.finite ()FALSCHFALSCHFALSCHFALSCH
is.infinite ()WAHRWAHRFALSCHFALSCH
is.nan ()FALSCHFALSCHWAHRFALSCH
is.na ()FALSCHFALSCHWAHRWAHR

Menü