Come risolvere in r: valore mancante dove è necessario vero/falso


Un errore che potresti riscontrare in R è:

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

Questo errore si verifica quando si confronta un valore con NA in un’istruzione if in R utilizzando la sintassi x == NA .

Un’istruzione if prevede un valore VERO o FALSO, quindi dovresti utilizzare is.na(x) perché questa funzione restituisce sempre VERO o FALSO.

Come riprodurre l’errore

Supponiamo di provare a scorrere un elenco di valori in un vettore in R e stampare la parola “mancante” ogni volta che è presente un valore NA nel vettore:

 #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

Riceviamo un errore perché abbiamo utilizzato la sintassi x[i] == NA .

Come correggere l’errore

Dobbiamo cambiare la sintassi in is.na(x) come segue:

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

Tieni presente che non riceviamo un errore e possiamo stampare la parola “mancante” ogni volta che incontriamo un valore NA nel vettore.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in R:

Come risolvere: NA introdotte dalla coercizione
Come risolvere il problema: numero errato di indici sulla matrice
Modalità di riparazione: il numero di pezzi da sostituire non è multiplo della lunghezza di sostituzione

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *