Вы можете использовать map
и augment
аналогично тому, как вы подходите glm
для каждой строки.
library(tidyverse)
library(broom)
y <- names(mtcars)
xs <- map(y, ~setdiff(names(mtcars), .x)) %>%
map(~paste0(.x, collapse = "+")) %>%
unlist()
ys <- names(mtcars)
models <- tibble(ys, xs) %>%
mutate(Formula = paste0(ys, " ~ ", xs)) %>%
mutate(model = map(Formula, ~glm(as.formula(.x), data = mtcars))) %>%
mutate(Pred = map(model, augment))
Прогноз находится в столбце .fitted
в каждом кадре данных из списка Pred
.
models2 <- models %>%
select(Formula, Pred) %>%
unnest() %>%
select(`.rownames`, names(mtcars), Formula, `.fitted`) %>%
spread(Formula, `.fitted`)