Hoe op te lossen in r: ontbrekende waarde waar waar/onwaar nodig is


Een fout die je tegen kunt komen in R is:

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

Deze fout treedt op wanneer u een waarde vergelijkt met NA in een if- instructie in R met behulp van de syntaxis x == NA .

Een if -instructie verwacht een TRUE- of FALSE-waarde, dus u moet in plaats daarvan is.na(x) gebruiken, omdat deze functie altijd TRUE of FALSE retourneert.

Hoe de fout te reproduceren

Stel dat we proberen een lijst met waarden in een vector in R te doorlopen en het woord „ontbrekend“ af te drukken elke keer dat er een NA-waarde in de vector staat:

 #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

We ontvangen een foutmelding omdat we de syntaxis x[i] == NA hebben gebruikt.

Hoe u de fout kunt oplossen

We moeten de syntaxis als volgt wijzigen in is.na(x) :

 #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”

Merk op dat we geen foutmelding krijgen en het woord „ontbrekend“ kunnen afdrukken wanneer we een NA-waarde in de vector tegenkomen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:

Oplossing: NA’s geïntroduceerd door dwang
Oplossing: onjuist aantal indexen op matrix
Hoe te repareren: het aantal te vervangen items is geen veelvoud van de vervangingslengte

Einen Kommentar hinzufügen

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