简体   繁体   English

tidyverse 语言中的映射函数

[英]map function in tidyverse language

I have the following 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)

and I have added them into a list called regression_list我已将它们添加到名为regression_list 的列表中

regression_list<-c(m1_vtv,m2_vtv,m3_vtv,m1_vug,m2_vug,m3_vug)

I am trying to glance() all the models in regression_list together.我正在尝试一起浏览()regression_list 中的所有模型。 Individually it works:单独工作:

tidy(model1) %>% as_tibble()
glance(model1)

在此处输入图片说明

However when I tried this但是当我尝试这个时

regression_list %>% 
  map(~lm(.x, data = df_final)) %>%
   map(~as_tibble(.x, data = df_final)) %>% 
  map(~glance(.x, data = df_final))

I get error message:我收到错误消息:

Error in as.data.frame.default(value, stringsAsFactors = FALSE) : cannot coerce class '"lm"' to a data.frame as.data.frame.default(value, stringsAsFactors = FALSE) 中的错误:无法将类 '"lm"' 强制转换为 data.frame

Looking for way to fit this into map function to run through all the formulas in regression_list寻找将其拟合到 map 函数中的方法,以运行regression_list所有公式

As the error message says you are trying to convert lm object to tibble.正如错误消息所说,您正在尝试将lm对象转换为 tibble。 You also don't need multiple map 's as you can do this in the same map function.您也不需要多个map ,因为您可以在同一个map函数中执行此操作。 Try :尝试 :

library(purrr)
library(broom)

result <- regression_list %>% map(~glance(lm(.x, data = df_final)))

If you want the result in one dataframe you can use map_df in place of map .如果您希望在一个数据map_df得到result ,您可以使用map_df代替map

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM