función de mapa en lenguaje tidyverse
Tengo la siguiente formula
#Regression(Y1 - VTV)----
m1_vtv<-formula(vtv~retailsales)
m2_vtv<-formula(vtv~retailsales+cpi)
m3_vtv<-formula(vtv~retailsales+cpi+tmf)
#Regression(Y2 - VUG)----
m1_vug<-formula(vug~retailsales)
m2_vug<-formula(vug~retailsales+cpi)
m3_vug<-formula(vug~retailsales+cpi+tmf)
y los he agregado a una lista llamada regression_list
regression_list<-c(m1_vtv,m2_vtv,m3_vtv,m1_vug,m2_vug,m3_vug)
Estoy tratando de mirar () todos los modelos en regression_list juntos. Individualmente funciona:
tidy(model1) %>% as_tibble()
glance(model1)
Sin embargo, cuando intenté esto
regression_list %>%
map(~lm(.x, data = df_final)) %>%
map(~as_tibble(.x, data = df_final)) %>%
map(~glance(.x, data = df_final))
Recibo un mensaje de error:
Error en as.data.frame.default (valor, stringsAsFactors = FALSE): no se puede forzar la clase '"lm"' a un data.frame
Buscando una forma de encajar esto en la función de mapa para ejecutar todas las fórmulas en regression_list
Respuestas
Como dice el mensaje de error, está intentando convertir el lmobjeto a tibble. Tampoco necesita múltiples map, ya que puede hacer esto en la misma mapfunción. Intentar :
library(purrr)
library(broom)
result <- regression_list %>% map(~glance(lm(.x, data = df_final)))
Si desea el resulten un marco de datos, puede usar map_dfen lugar de map.