如何解决使用purrr :: map从多个模型中提取r.squared
我有以下三个线性模型:
models <- mtcars %>%
split(.$cyl) %>%
map(~lm(mpg ~ wt,data = .))
现在,我想使用r.squared
从所有三个模型中提取purrr::map()
。
我尝试了以下两种方法,但是它们都会产生错误(即“错误:无法将summaryDefault/table
对象转换为函数”)
models %>%
map(summary) %>%
map_dbl(~.$r.squared)
models %>%
map(summary) %>%
map_dbl("r.squared")
问题是什么,如何解决?
解决方法
library(tidyverse)
models <- mtcars %>%
split(.$cyl) %>%
map(~lm(mpg ~ wt,data = .))
手动执行操作即可:
summary(models[[1]])$r.squared
然后使用map
:
#and in map loop map_dfr
map_dfr(models,~summary(.)$r.squared)
# # A tibble: 1 x 3
# `4` `6` `8`
# <dbl> <dbl> <dbl>
# 1 0.509 0.465 0.423
或
map_dfr(models,~ glance(.x) %>%
dplyr::select(r.squared))
# A tibble: 3 x 1
# r.squared
# <dbl>
#1 0.509
#2 0.465
#3 0.423
,
by_cyl <- split(mtcars,mtcars$cyl)
by_cyl %>%
map(~ lm(mpg ~ wt,data = .x)) %>%
map(summary) %>%
map_dbl('r.squared')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。