Umgang mit nan-werten in r (mit beispielen)


In R steht NaN für Not a Number.

Normalerweise treten NaN-Werte auf, wenn Sie versuchen, eine Berechnung durchzuführen, die zu einem ungültigen Ergebnis führt.

Beispielsweise führt die Division durch Null oder die Berechnung des Logarithmus einer negativen Zahl zu NaN-Werten:

 #attempt to divide by zero
0 / 0

[1]NaN

#attempt to calculate log of negative value
log(-12)

[1]NaN

Beachten Sie, dass sich NaN-Werte von NA- Werten unterscheiden, die lediglich fehlende Werte darstellen.

Sie können die folgenden Methoden verwenden, um NaN-Werte in R zu verarbeiten:

 #identify positions in vector with NaN values
which(is. nan (x))

#count total NaN values in vector
sum(is. nan (x)) 

#remove NaN values in vector
x_new <- x[!is. no (x)]

#replace NaN values in vector
x[is. nan (x)] <- 0 

Die folgenden Beispiele zeigen, wie jede dieser Methoden in der Praxis angewendet werden kann.

Beispiel 1: Identifizieren Sie Positionen in einem Vektor mit NaN-Werten

Der folgende Code zeigt, wie Positionen in einem Vektor identifiziert werden, die NaN-Werte enthalten:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#identify positions with NaN values
which(is. nan (x))

[1] 2 4

Aus dem Ergebnis können wir erkennen, dass die Elemente an den Positionen 2 und 4 im Vektor NaN-Werte sind.

Beispiel 2: Zählen der gesamten NaN-Werte in einem Vektor

Der folgende Code zeigt, wie die Gesamtzahl der NaN-Werte in einem Vektor in R gezählt wird:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#identify positions with NaN values
sum(is. nan (x))

[1] 2

Aus dem Ergebnis können wir ersehen, dass der Vektor insgesamt 2 NaN-Werte enthält.

Beispiel 3: NaN-Werte im Vektor entfernen

Der folgende Code zeigt, wie man einen neuen Vektor erstellt, wobei die NaN-Werte aus dem ursprünglichen Vektor entfernt werden:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#define new vector with NaN values removed
x_new <- x[!is. no (x)]

#view new vector
x_new

[1] 1 12 50 30

Beachten Sie, dass die beiden NaN-Werte aus dem Vektor entfernt wurden.

Beispiel 4: NaN-Werte im Vektor ersetzen

Der folgende Code zeigt, wie man NaN-Werte in einem Vektor durch Nullen ersetzt:

 #create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)

#replace NaN values with zero
x[is. nan (x)] <- 0

#view updated vector
x

[1] 1 0 12 0 50 30

Beachten Sie, dass beide NaN-Werte im Vektor durch Nullen ersetzt wurden.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

So interpolieren Sie fehlende Werte in R
So finden und zählen Sie fehlende Werte in R
Wie man „Ist nicht NA“ in R verwendet

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert