Поскольку неясно, как вы будете отображать эстетику в переменные, используемые в вашей модели, вам нужно будет самостоятельно рассчитать значения для линий, а затем просто добавить их как стандартный слой geom_line
вместо использования geom_smooth
.Например,
lines <- purrr::map_dfr(models, function(m) {
xrng <- range(m$model$x)
data.frame(x=xrng, y=predict(m, data.frame(x=xrng)))
}, .id="z")
ggplot(DT, aes(x=x, y=y)) + geom_point() +
facet_wrap(~ z, nrow=2, ncol=4) +
geom_line(color="red", data=lines)
Обратите внимание, что здесь уклоны выглядят немного «выкл», но это соответствует тому, что вы фактически смоделировали (вы использовали весь DT
каждый раз).Если вы хотите оценивать уклоны отдельно в каждой итерации, цикл должен выглядеть примерно так:
for(i in 1:8){
x <- rnorm(N)
y <- i*x + rnorm(N)
z <- rep(i,N)
chunk <- data.table(x=x,y=y,z=z)
models[[i]] <- lm(y~x,chunk)
DT <- rbind(DT, chunk)
}