У меня есть фрейм данных, содержащий несколько моделей, и я хочу применить соответствующую модель к каждой строке другого фрейма данных, а затем добавить прогнозируемое значение модели в новый столбец этого фрейма данных
У меня есть довольно не элегантное решение, использующее цикл for и требующее, чтобы я отсортировал фрейм данных, к которому применяются модели.
# sort my sample data (mtcars) by cylinder, so the final data lines up
mycars <- mtcars[order(mtcars$cyl),]
# build a linear model for each number of cylinders,
# estimating mpg from displacement
by_cyl <- group_by(mycars, cyl)
models <- by_cyl %>% do(mod = lm(mpg ~ disp, data = .))
# my inelegant solution for adding the predicted mpg into the dataset
prediction <- c()
for (i in models$cyl){
temp <- filter(mycars, cyl == i)
prediction <- c(prediction, predict((models %>% filter(cyl==i))$mod[[1]], temp))
}
mycars$mpg.pred <- prediction
Я бы хотел избежать использования цикла for и, если возможно, также оставить исходную дату в первоначальном порядке