Я использую map()
для вычисления и извлечения определенной статистики из нескольких lm()
моделей.
Чтобы дать воспроизводимый пример, используя набор данных mtcars, я начну с входного вектора формул дляоценивать с использованием lm()
моделей:
library(tidyverse)
df <- mtcars
input_char <- c("mpg ~ disp",
"mpg ~ disp + hp")
input_formula <- map(input_char, formula)
Затем я получил функцию, которая вычисляет и извлекает соответствующую статистику для каждой модели. Для простоты и воспроизводимости, вот упрощенная функция, которая просто извлекает R-квадрат модели.
get_rsquared <- function(a_formula) {
model1 <- lm(a_formula, data = df)
rsquared <- summary(model1)$r.squared
c(model = a_formula, rsquared = rsquared)
}
Затем я использовал map
, чтобы перебрать формулы и извлечь R-квадрат из каждогомодель.
models <- map(input_formula, get_rsquared)
models
, который дает вывод:
[[1]]
[[1]]$model
mpg ~ disp
<environment: 0x7f98987f4000>
[[1]]$rsquared
[1] 0.7183433
[[2]]
[[2]]$model
mpg ~ disp + hp
<environment: 0x7f98987f4000>
[[2]]$rsquared
[1] 0.7482402
Мой вопрос касается вывода в виде списка.
Есть ли простой способ сделать вывод кадром данных?
Мой желаемый результат:
#> model rsquared
#> 1 mpg ~ disp 0.7183433
#> 2 mpg ~ disp + hp 0.7482402