Como corrigir em r: valor ausente onde verdadeiro/falso é necessário


Um erro que você pode encontrar no R é:

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

Este erro ocorre quando você compara um valor com NA em uma instrução if em R usando a sintaxe x == NA .

Uma instrução if espera um valor TRUE ou FALSE, então você deve usar is.na(x) porque esta função sempre retorna TRUE ou FALSE.

Como reproduzir o erro

Suponha que estamos tentando iterar uma lista de valores em um vetor em R e imprimir a palavra “ausente” toda vez que houver um valor NA no vetor:

 #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

Recebemos um erro porque usamos a sintaxe x[i] == NA .

Como corrigir o erro

Precisamos alterar a sintaxe para is.na(x) da seguinte maneira:

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

Observe que não recebemos um erro e podemos imprimir a palavra “ausente” sempre que encontrarmos um valor NA no vetor.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns no R:

Como corrigir: NAs introduzidos por coerção
Como corrigir: número incorreto de índices na matriz
Como reparar: o número de itens a substituir não é um múltiplo do comprimento de substituição

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *