Como corrigir: a estética deve ter comprimento 1 ou igual aos dados.


Um erro que você pode encontrar no R é:

 Error: Aesthetics must be either length 1 or the same as the data (5): fill

Este erro ocorre quando você tenta especificar cores de preenchimento para usar em um gráfico ggplot2, mas o número de cores especificado não é igual a 1 ou não é igual ao número total de objetos a serem preenchidos.

O exemplo a seguir mostra como corrigir esse erro na prática.

Como reproduzir o erro

Digamos que estamos trabalhando com o conjunto de dados R integrado chamado airquality :

 #view first six lines of air quality dataset
head(airquality)

  Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6

Agora suponha que tentamos criar vários box plots para visualizar a distribuição dos valores de ozônio para cada mês:

 library (ggplot2)

#attempt to create multiple boxplots
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red '))

Error: Aesthetics must be either length 1 or the same as the data (5): fill

Estamos recebendo um erro porque há 5 meses únicos no conjunto de dados (portanto, criaremos 5 boxplots), mas fornecemos apenas duas cores para o argumento de preenchimento .

Como corrigir o erro

Existem duas maneiras de corrigir esse erro:

Método 1: use apenas uma cor no argumento de preenchimento

Poderíamos escolher usar apenas uma cor no argumento de preenchimento:

 library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue '))

Isso nos permite preencher cada boxplot com a mesma cor.

Método 2: use o mesmo número de cores que o número de boxplots

Também poderíamos especificar cinco cores a serem usadas, pois isso corresponde ao número de boxplots que criaremos:

 library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange ')) 

Não recebemos nenhum erro porque o número de cores que fornecemos corresponde ao número de boxplots.

Recursos adicionais

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

Como corrigir: valor discreto fornecido em escala contínua
Como consertar: o argumento não é numérico nem lógico: retorna na
Como corrigir: a substituição tem comprimento zero

Add a Comment

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