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