Como corrigir em r: nas introduzidos por coerção


Uma mensagem de aviso comum que você pode encontrar no R é:

 Warning message:
NAs introduced by coercion 

Esta mensagem de aviso ocorre quando você usa as.numeric() para converter um vetor em R em um vetor numérico e acontece que há valores não numéricos no vetor original.

Para ser claro, você não precisa fazer nada para “consertar” esta mensagem de aviso. R simplesmente avisa que alguns valores do vetor original foram convertidos para NA porque não puderam ser convertidos para valores numéricos.

No entanto, este tutorial compartilha as etapas exatas que você pode seguir se não quiser ver esta mensagem de aviso exibida.

Como reproduzir a mensagem de aviso

O código a seguir converte um vetor de caracteres em um vetor numérico:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

Warning message:
NAs introduced by coercion 
[1] 1 2 3 NA 4 NA

R converte o vetor de caracteres em um vetor numérico, mas exibe a mensagem de aviso NAs introduzidos por coerção , pois dois valores do vetor original não puderam ser convertidos em valores numéricos.

Método nº 1: remover avisos

Uma maneira de lidar com esta mensagem de aviso é simplesmente suprimi-la usando a função suprimirWarnings() ao converter o vetor de caracteres em um vetor numérico:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))

#display digital vector
x_num

[1] 1 2 3 NA 4 NA

R converte com êxito o vetor de caracteres em vetor numérico sem exibir nenhuma mensagem de aviso.

Método nº 2: Substitua valores não numéricos

Uma maneira de evitar a mensagem de aviso é substituir os valores não numéricos do vetor original por espaços usando a função gsub() :

 #define character vector
x <- c('1', '2', '3', '4', 'Hey')

#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

[1] 1 2 3 4 0

R converte com êxito o vetor de caracteres em vetor numérico sem exibir nenhuma mensagem de aviso.

Recursos adicionais

Os tutoriais a seguir explicam como resolver outros erros comuns em R:

Como corrigir em R: os nomes não correspondem aos nomes anteriores
Como corrigir em R: o comprimento de um objeto mais longo não é múltiplo do comprimento de um objeto mais curto
Como corrigir em R: contrastes só podem ser aplicados a fatores com 2 ou mais níveis

Add a Comment

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