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에서 축 레이블을 회전하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다