Como corrigir: erro em fun(newx[, i], …): tipo de argumento '(caractere)


Um erro que você pode encontrar no R é:

 Error in sum(x): invalid 'type' (character) of argument

Este erro ocorre quando você tenta realizar uma operação matemática (como calcular soma, média, número, etc.) em um vetor de caracteres.

Este tutorial explica como resolver esse erro na prática.

Como reproduzir o erro

Suponha que criemos o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(10, 12, 15, 20, 26, 25),
                 rebounds=c(7, 8, 8, 14, 10, 12))

#view data frame
df

  team points rebounds
1 to 10 7
2 to 12 8
3 to 15 8
4 B 20 14
5 B 26 10
6 B 25 12

Agora suponha que tentamos calcular a soma da coluna “equipe”:

 #attempt to calculate sum of values in 'team' column
sum(df$team)

Error in sum(df$team): invalid 'type' (character) of argument

Recebemos um erro porque a coluna “equipe” é uma coluna de caracteres.

Podemos confirmar isso usando a função class() :

 #view class of 'team' column
class(df$team)

[1] “character”

Como corrigir o erro

A maneira de contornar esse erro é usar apenas operações matemáticas com vetores numéricos.

Por exemplo, poderíamos usar a função sum() para calcular a soma dos valores na coluna ‘pontos’:

 #calculate sum of values in 'points' column
sum(df$points)

[1] 108

Também poderíamos calcular a soma dos valores dos pontos, agrupados por equipe:

 #calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)

  team points
1 to 37
2 B 71

Poderíamos até calcular a soma dos valores de pontos e rebotes, agrupados por equipe:

 #calculate sum of points and sum of rebounds, grouped by team
aggregate(.~team, df, sum)

  team points rebounds
1 A 37 23
2 B 71 36

Observe que não recebemos erro em nenhuma dessas operações porque estamos apenas tentando calcular a soma das variáveis numéricas.

Recursos adicionais

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

Como corrigir: a condição tem comprimento > 1 e apenas o primeiro elemento será usado
Como corrigir: argumento não numérico do operador binário
Como corrigir: dim(X) deve ter um comprimento positivo
Como corrigir: erro ao selecionar argumentos não utilizados

Add a Comment

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