So beheben sie in r: fehlender wert, bei dem wahr/falsch benötigt wird


Ein Fehler, der in R auftreten kann, ist:

 Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed

Dieser Fehler tritt auf, wenn Sie einen Wert mit NA in einer if- Anweisung in R unter Verwendung der Syntax x == NA vergleichen.

Eine if- Anweisung erwartet einen TRUE- oder FALSE-Wert, daher sollten Sie stattdessen is.na(x) verwenden, da diese Funktion immer TRUE oder FALSE zurückgibt.

So reproduzieren Sie den Fehler

Angenommen, wir versuchen, eine Liste von Werten in einem Vektor in R zu durchlaufen und jedes Mal, wenn ein NA-Wert im Vektor vorhanden ist, das Wort „fehlend“ auszugeben:

 #define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for (i in 1:length(x)) {
 
 if (x[i] == NA) {
    print(' Missing ')
  }
}

Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed

Wir erhalten eine Fehlermeldung, weil wir die Syntax x[i] == NA verwendet haben.

So beheben Sie den Fehler

Wir müssen die Syntax wie folgt in is.na(x) ändern:

 #define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for (i in 1:length(x)) {
 
 if (is. na (x[i])) {
    print(' Missing ')
  }
}

[1] “Missing”
[1] “Missing”

Beachten Sie, dass wir keine Fehlermeldung erhalten und das Wort „fehlt“ ausgeben können, wenn wir im Vektor auf einen NA-Wert stoßen.

Zusätzliche Ressourcen

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

So beheben Sie das Problem: Durch Zwang eingeführte NAs
So beheben Sie: Falsche Anzahl von Indizes in der Matrix
So reparieren Sie: Die Anzahl der auszutauschenden Teile ist kein Vielfaches der Austauschlänge

Einen Kommentar hinzufügen

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