Одна ошибка, с которой вы можете столкнуться в R:
Error: Aesthetics must be either length 1 or the same as the data (5): fill
Эта ошибка возникает, когда вы пытаетесь указать цвета заливки для использования на графике ggplot2, но указанное вами количество цветов отличается от 1 или отличается от общего количества объектов, которые должны быть заполнены.
В следующем примере показано, как исправить эту ошибку на практике.
Как воспроизвести ошибку
Предположим, мы работаем со встроенным набором данных R под названием airquality :
#view first six lines of *airquality* 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
Теперь предположим, что мы пытаемся создать несколько диаграмм, чтобы визуализировать распределение значений озона для каждого месяца:
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
Мы получаем ошибку, потому что в наборе данных есть 5 уникальных месяцев (таким образом, мы создадим 5 блочных диаграмм), но мы указали только два цвета для аргумента заливки .
Как исправить ошибку
Есть два способа исправить эту ошибку:
Метод 1: используйте только один цвет в аргументе заливки
Мы могли бы использовать только один цвет в аргументе заливки:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c('steelblue'))

Это позволяет нам закрасить каждую диаграмму одним и тем же цветом.
Метод 2: используйте то же количество цветов, что и количество диаграмм
Мы также можем указать пять цветов для использования, так как это соответствует количеству блочных диаграмм, которые мы создадим:
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c('steelblue', 'red', 'purple', 'green', 'orange'))

Мы не получаем и не получаем ошибку, потому что количество предоставленных нами цветов соответствует количеству коробочных диаграмм.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в R:
Как исправить: дискретное значение передается в непрерывную шкалу
Как исправить: аргумент не является числовым или логическим: возвращается na
Как исправить: замена имеет нулевую длину