Como corrigir: ggplot2 não sabe como lidar com dados de classe desiguais


Um erro que você pode encontrar no R é:

 Error: ggplot2 doesn't know how to deal with data of class uneval

Este erro geralmente ocorre quando você tenta usar ggplot2 para plotar dois quadros de dados ao mesmo tempo, mas não consegue usar o argumento data na função geom_line() .

Este tutorial explica exatamente como corrigir esse erro.

Como reproduzir o erro

Digamos que temos dois data frames em R que mostram o número de vendas realizadas em horários específicos e em dias diferentes:

 #create first data frame
df <- data. frame (date=c(1, 1, 1, 2, 2, 2, 3, 3, 3),
                 hour=c(1, 2, 3, 1, 2, 3, 1, 2, 3),
                 sales=c(2, 5, 7, 5, 8, 12, 10, 14, 13))

#view data frame
head(df)

  date hour sales
1 1 1 2
2 1 2 5
3 1 3 7
4 2 1 5
5 2 2 8
6 2 3 12

#create second data frame
df_new <- data. frame (date=c(4, 4, 4, 5, 5, 5),
                     hour=c(1, 2, 3, 1, 2, 3),
                     sales=c(12, 13, 19, 15, 18, 20))

#view data frame 
head(df_new)

  date hour sales
1 4 1 12
2 4 2 13
3 4 3 19
4 5 1 15
5 5 2 18
6 5 3 20

Agora digamos que estamos tentando criar um gráfico de linhas para visualizar as vendas agrupadas por dia e hora, usando a cor azul para o primeiro quadro de dados e vermelho para o segundo quadro de dados:

 library (ggplot2)

#attempt to create line chart
ggplot(df, aes(x=hour, y=sales, group=date)) +
  geom_line(color=' blue ') +
  geom_line(df_new, aes(x=hour, y=sales, group=date), color=' red ')

Error: ggplot2 doesn't know how to deal with data of class uneval

Estamos recebendo um erro porque não conseguimos usar o argumento data na segunda função geom_line() .

Como corrigir o erro

A maneira de corrigir esse erro é simplesmente inserir os dados no segundo argumento geom_line() para que R saiba qual quadro de dados estamos tentando plotar.

 library (ggplot2)

#create line chart
ggplot(df, aes(x=hour, y=sales, group=date)) +
  geom_line(color=' blue ') +
  geom_line(data=df_new, aes(x=hour, y=sales, group=date), color=' red ') 

Observe que desta vez podemos criar o gráfico de linhas com êxito e sem erros.

Recursos adicionais

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

Como corrigir em R: erro em as.Date.numeric(x): “origin” deve ser fornecido
Como corrigir: Erro em stripchart.default(x1,…): Método de plotagem inválido
Como corrigir: erro em eval (predvars, data, env): objeto ‘x’ não encontrado

Add a Comment

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