2017-12-05 28 views
0

내 목표는 연속 대 카테고리 변수를 사용하여 회귀선 간의 차이를 보여주는 그래프를 만드는 것입니다. 내가 사용하고있는 "SleepStudy"데이터 세트는 Lock5Data입니다. GPA를 ClassYear에서 예측하는 회귀선을 연속 또는 범주 형으로 표시하려고합니다. 코드는 아래와 같습니다.r : 산점도에서 여러 줄을 그릴 때 빈 그래프

library(Lock5Data) 
data("SleepStudy") 
fit2 <- lm(GPA ~ factor(ClassYear), data = SleepStudy) 
fit2_line <- aggregate(fit2$fitted.values ~ SleepStudy$ClassYear, FUN = mean) 
colnames(fit2_line) <- c('ClassYear','GPA') 

options(repr.plot.width=5, repr.plot.height=5) 
library(ggplot2) 
ggplot() + 
    geom_line(data=fit2_line, aes(x=ClassYear, y=GPA)) + # Fit line, ClassYear factor 
    geom_smooth(data=SleepStudy, method='lm', formula=GPA~ClassYear) + # Fit line, ClassYear continuous 
    geom_point(data=SleepStudy, aes(x=ClassYear, y=GPA)) # Data points as dots 

빈 그래프는 무엇을 생성합니까? 내가 여기서 무엇을 놓치고 있니?

답변

1

geom_smooth에 사용할 데이터를 ggplot()에 정의해야합니다. 이 코드는 작동합니다 :

ggplot(data=SleepStudy, aes(y = GPA,x = ClassYear)) + 
    geom_smooth(data=SleepStudy, method='lm', formula=y~x)+ 
    geom_line(data=fit2_line, aes(x=ClassYear, y=GPA)) + 
    geom_point(data=SleepStudy, aes(x=ClassYear, y=GPA)) 
+0

고마워요! Axes를 매핑 할 수있는 한 각 플롯 객체의 데이터를 정의 할 수 없다는 사실에 놀랐습니다. –

+0

@Thomas 당신이'geom_point'에서하는 것처럼 다른 종류의 줄거리로 가능합니다. 그러나'geom_smooth'는 유연하지 않습니다. –