So beheben sie in r: nas, die durch zwang eingeführt wurden


Eine häufige Warnmeldung, die in R auftreten kann, ist:

 Warning message:
NAs introduced by coercion 

Diese Warnmeldung tritt auf, wenn Sie as.numeric() verwenden, um einen Vektor in R in einen numerischen Vektor umzuwandeln, und der ursprüngliche Vektor zufällig nicht numerische Werte enthält.

Um es klarzustellen: Sie müssen nichts unternehmen, um diese Warnmeldung zu „beheben“. R warnt Sie lediglich, dass einige Werte im Originalvektor in NA konvertiert wurden, da sie nicht in numerische Werte konvertiert werden konnten.

In diesem Tutorial werden jedoch die genauen Schritte erläutert, die Sie befolgen können, wenn Sie nicht möchten, dass diese Warnmeldung angezeigt wird.

So reproduzieren Sie die Warnmeldung

Der folgende Code wandelt einen Zeichenvektor in einen numerischen Vektor um:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

Warning message:
NAs introduced by coercion 
[1] 1 2 3 NA 4 NA

R wandelt den Zeichenvektor in einen numerischen Vektor um, zeigt jedoch die durch Zwang eingeführte Warnmeldung NAs an, da zwei Werte des ursprünglichen Vektors nicht in numerische Werte umgewandelt werden konnten.

Methode Nr. 1: Warnungen entfernen

Eine Möglichkeit, mit dieser Warnmeldung umzugehen, besteht darin, sie einfach mit der Funktion „suppressWarnings()“ zu unterdrücken, wenn der Zeichenvektor in einen numerischen Vektor konvertiert wird:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))

#display digital vector
x_num

[1] 1 2 3 NA 4 NA

R konvertiert den Zeichenvektor erfolgreich in einen numerischen Vektor, ohne dass eine Warnmeldung angezeigt wird.

Methode Nr. 2: Ersetzen Sie nicht numerische Werte

Eine Möglichkeit, die Warnmeldung von vornherein zu vermeiden, besteht darin, die nicht numerischen Werte des Originalvektors mithilfe der Funktion gsub() durch Leerzeichen zu ersetzen:

 #define character vector
x <- c('1', '2', '3', '4', 'Hey')

#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

[1] 1 2 3 4 0

R konvertiert den Zeichenvektor erfolgreich in einen numerischen Vektor, ohne dass eine Warnmeldung angezeigt wird.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:

So beheben Sie das Problem in R: Namen stimmen nicht mit vorherigen Namen überein
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts
So korrigieren Sie in R: Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden

Einen Kommentar hinzufügen

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