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