수정 방법: 미학은 길이가 1이거나 데이터와 동일해야 합니다.
R에서 발생할 수 있는 오류는 다음과 같습니다.
Error: Aesthetics must be either length 1 or the same as the data (5): fill
이 오류는 ggplot2 플롯에서 사용할 채우기 색상을 지정하려고 시도했지만 지정한 색상 수가 1이 아니거나 채워질 총 객체 수와 같지 않을 때 발생합니다.
다음 예에서는 실제로 이 오류를 수정하는 방법을 보여줍니다.
오류를 재현하는 방법
airquality 라는 내장 R 데이터 세트를 사용하여 작업한다고 가정해 보겠습니다.
#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
이제 매월 오존 값 분포를 시각화하기 위해 여러 개의 상자 그림을 생성한다고 가정해 보겠습니다.
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: 상자 그림 수와 동일한 수의 색상 사용
사용할 상자 그림 수에 해당하는 5가지 색상을 지정할 수도 있습니다.
library (ggplot2)
ggplot(data = airquality, aes(x=as. character (Month), y=Temp)) +
geom_boxplot(fill=c(' steelblue ', ' red ', ' purple ', ' green ', ' orange '))

우리가 제공한 색상 수가 상자 그림 수와 일치하기 때문에 오류가 발생하지 않습니다.
추가 리소스
다음 튜토리얼에서는 R의 다른 일반적인 오류를 수정하는 방법을 설명합니다.
수정 방법: 연속 규모로 제공되는 개별 값
해결 방법: 인수가 숫자도 아니고 논리도 아닙니다. na를 반환합니다.
해결 방법: 교체 길이가 0입니다.