- Como reproduzir a mensagem de aviso
- Método #1: Suprimir avisos
- Método #2: Substituir valores não numéricos
Uma mensagem de aviso comum que pode encontrar no R é:
Mensagem de aviso: NAs introduzidas por coerção
Esta mensagem de aviso ocorre quando se utiliza as.numeric() para converter um vetor em R num vetor numérico e existem valores não numéricos no vetor original.
Para ser claro, não é necessário fazer nada para "corrigir" esta mensagem de aviso. O R está simplesmente a alertá-lo para o facto de alguns valores no vetor original terem sido convertidos em NAs porque não podiam ser convertidos em valores numéricos.
No entanto, este tutorial partilha os passos exactos que pode utilizar se não quiser ver esta mensagem de aviso apresentada.
Como reproduzir a mensagem de aviso
O código seguinte converte um vetor de caracteres num vetor numérico:
#definir vetor de caracteres x <- c('1', '2', '3', NA, '4', 'Hey') #converter para vetor numérico x_num <- as. numeric (x) #exibir vetor numérico x_num Mensagem de aviso: NAs introduzidos por coerção 1 2 3 NA 4 NA
R converte o vetor de caracteres para um vetor numérico, mas apresenta a mensagem de aviso NAs introduzidas por coerção uma vez que dois valores do vetor original não puderam ser convertidos em valores numéricos.
Método #1: Suprimir avisos
Uma forma de lidar com esta mensagem de aviso é simplesmente suprimi-la utilizando a opção suppressWarnings() ao converter o vetor de caracteres num vetor numérico:
#definir vetor de caracteres x <- c('1', '2', '3', NA, '4', 'Hey') #converter para vetor numérico, suprimindo avisos suppressWarnings(x_num <- as. numeric (x)) #exibir vetor numérico x_num 1 2 3 NA 4 NA
O R converte com sucesso o vetor de caracteres para um vetor numérico sem apresentar quaisquer mensagens de aviso.
Método #2: Substituir valores não numéricos
Uma forma de evitar a mensagem de aviso em primeiro lugar é substituir os valores não numéricos no vetor original por espaços em branco, utilizando a opção gsub() função:
#definir vetor de caracteres x <- c('1', '2', '3', '4', 'Hey') #substituir valores não-numéricos por 0 x <- gsub(" Hey ", " 0 ", x) #converter para vetor numérico x_num <- as. numeric (x) #exibir vetor numérico x_num 1 2 3 4 0
O R converte com sucesso o vetor de caracteres para um vetor numérico sem apresentar quaisquer mensagens de aviso.