R 오류 수정 방법: 연속 척도에 제공된 이산 값
R에서 발생할 수 있는 오류는 다음과 같습니다.
Error: Discrete value supplied to continuous scale
이 오류는 ggplot2의 축에 연속 스케일을 적용하려고 할 때 해당 축의 변수가 숫자가 아닐 때 발생합니다.
이 튜토리얼에서는 이 오류를 수정하는 방법을 정확하게 설명합니다.
오류를 재현하는 방법
R에 다음과 같은 데이터 프레임이 있다고 가정합니다.
#create data frame
df = data. frame (x = 1:12,
y = rep(c('1', '2', '3', '4'), times= 3 ))
#view data frame
df
xy
1 1 1
2 2 2
3 3 3
4 4 4
5 5 1
6 6 2
7 7 3
8 8 4
9 9 1
10 10 2
11 11 3
12 12 4
이제 scale_y_continuous() 인수를 사용하여 사용자 정의 y축 배율로 산점도를 생성하려고 한다고 가정합니다.
library (ggplot2)
#attempt to create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
geom_point() +
scale_y_continuous(limits = c(0, 10))
Error: Discrete value supplied to continuous scale
Y축 변수가 숫자 변수가 아닌 문자이기 때문에 오류가 발생합니다.
class( ) 함수를 사용하여 이를 확인할 수 있습니다.
#check class of y variable
class(df$y)
[1] “character”
오류를 수정하는 방법
이 오류를 수정하는 가장 쉬운 방법은 산점도를 만들기 전에 Y축 변수를 숫자 변수로 변환하는 것입니다.
library (ggplot2)
#convert y variable to numeric
df$y <- as. numeric (df$y)
#create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
geom_point() +
scale_y_continuous(limits = c(0, 10))

문자 변수 대신 숫자 변수와 함께 scale_y_continuous()를 사용했기 때문에 오류가 발생하지 않습니다.
scale_y_continuous() 함수에 대한 전체 온라인 설명서는 여기에서 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 ggplot2에서 다른 일반적인 플로팅 기능을 수행하는 방법을 설명합니다.
ggplot2에서 축 나누기를 설정하는 방법
ggplot2에서 축 레이블을 제거하는 방법
ggplot2에서 축 레이블을 회전하는 방법