Come risolvere il problema: l'estetica deve essere di lunghezza 1 o uguale ai dati.


Un errore che potresti riscontrare in R è:

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

Questo errore si verifica quando provi a specificare i colori di riempimento da utilizzare in un grafico ggplot2, ma il numero di colori specificato non è uguale a 1 o non è uguale al numero totale di oggetti da riempire.

L’esempio seguente mostra come correggere questo errore nella pratica.

Come riprodurre l’errore

Diciamo che stiamo lavorando con il set di dati R integrato chiamato 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

Supponiamo ora di provare a creare diversi box plot per visualizzare la distribuzione dei valori di ozono per ogni mese:

 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

Riceviamo un errore perché ci sono 5 mesi univoci nel set di dati (quindi creeremo 5 boxplot) ma abbiamo fornito solo due colori all’argomento di riempimento .

Come correggere l’errore

Esistono due modi per correggere questo errore:

Metodo 1: utilizzare un solo colore nell’argomento riempimento

Potremmo scegliere di utilizzare un solo colore nell’argomento fill:

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

Questo ci permette di riempire ogni boxplot con lo stesso colore.

Metodo 2: utilizzare un numero di colori pari al numero di boxplot

Potremmo anche specificare cinque colori da utilizzare, poiché ciò corrisponde al numero di boxplot che creeremo:

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

Non riceviamo alcun errore perché il numero di colori che abbiamo fornito corrisponde al numero di boxplot.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in R:

Come risolvere il problema: valore discreto fornito su scala continua
Come risolvere: l’argomento non è né numerico né logico: restituisce na
Come risolvere il problema: la sostituzione ha una lunghezza pari a zero

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *