R语言 如何更方便地检索lm()系数

vngu2lb8  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(143)

dplyr中,使用group_map可以生成lm()模型,并将系数合并到一个 Dataframe 中。我想将组信息和Adjusted_R_squared添加到最终的data.fame中。
目前我键入值作为向量并添加到data.frame。有什么方便的方法吗?

library(dplyr)
library(data.table)

models <- iris %>% 
  group_by(Species) %>% 
  group_map(~ broom::tidy(lm(Petal.Length ~ Sepal.Length,data=.x))) %>% 
  rbindlist()
    
models$Species <- c('setosa','setosa','versicolor','versicolor','virginica','virginica')
models$Adjusted_R_squared <- c('0.05204','0.05204','0.5596','0.5596','0.7416','0.7416')
l7wslrjt

l7wslrjt1#

如果你在你的group_map()中打开一个函数,你可以对你的输出进行更多的定制,比如:

models <- iris %>% 
  group_by(Species) %>% 
  group_map(
    function(spe, spe_name) {
      results <- lm(Petal.Length ~ Sepal.Length, data = spe)
      broom::tidy(results) %>%
        mutate(Species = spe_name$Species, Adjusted_R_squared = summary(results)$adj.r.squared)
    }
  ) %>% 
  rbindlist()

相关问题