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