Como reparar em r: argumento não numérico do operador binário


Um erro que você pode encontrar no R é:

 Error in df$var1- df$var2: non-numeric argument to binary operator 

Este erro ocorre quando você tenta executar uma operação binária em dois vetores e um dos vetores não é numérico.

Aqui estão alguns exemplos de operações binárias:

  • Subtração ( )
  • Adição ( + )
  • Multiplicações ( * )
  • Divisão ( / )

Este erro ocorre com mais frequência quando um dos vetores fornecidos é um vetor de caracteres.

Este tutorial explica exatamente como corrigir esse erro.

Como reproduzir o erro

Suponha que temos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (period = c(1, 2, 3, 4, 5, 6, 7, 8),
                 sales = c(14, 13, 10, 11, 19, 9, 8, 7),
                 returns = c('1', '0', '2', '1', '1', '2', '2', '3'))

#view data frame
df

  period sales returns
1 1 14 1
2 2 13 0
3 3 10 2
4 4 11 1
5 5 19 1
6 6 9 2
7 7 8 2
8 8 7 3

Agora digamos que tentamos criar uma nova coluna chamada “líquido” subtraindo a coluna “retornos” da coluna “vendas”:

 #attempt to create new column called 'net'
df$net <- df$sales - df$returns

Error in df$sales * df$returns: non-numeric argument to binary operator

Ocorre um erro porque a coluna “retornos” é da classe “caractere” e não é possível subtrair uma coluna de caracteres de uma coluna numérica.

 #display class of 'sales' column
class(df$sales)

[1] "digital"

#display class of 'returns' column
class(df$returns)

[1] “character”

Como corrigir o erro

A maneira de corrigir esse erro é usar as.numeric() para converter a coluna “retornos” em numérica antes de realizar a subtração:

 #create new column called 'net'
df$net <- df$sales - as. numeric (df$returns)

#view updated data frame
df

  period sales returns net
1 1 14 1 13
2 2 13 0 13
3 3 10 2 8
4 4 11 1 10
5 5 19 1 18
6 6 9 2 7
7 7 8 2 6
8 8 7 3 4

Conseguimos realizar a subtração sem erros porque as colunas “vendas” e “devoluções” eram numéricas.

Recursos adicionais

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

Como corrigir em R: dim(X) deve ter comprimento positivo
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 *