【问题标题】:Using function lm() with group_by in R在 R 中使用带有 group_by 的函数 lm()
【发布时间】:2022-06-19 04:57:18
【问题描述】:

我正在尝试从一个数据帧为分类变量的每个级别创建一些 lm() 模型。 我将函数 lm() 与 group_by 一起使用,但它不起作用,只创建了一个模型。 当然,创建每个数据集并为每个数据集使用 lm() 很容易,但我想知道其他方式,使用 group_by、apply 等。

make_model <- function(data){
  lm(Sepal.Length~Sepal.Width,data)
}
models <- iris %>%
  group_by(Species) %>%
  make_model
predicted <- iris %>%
  group_by(Species) %>%
  mutate(prediction=predict(models,.))

【问题讨论】:

    标签: group-by apply purrr lm iris-dataset


    【解决方案1】:

    我会查看 R 的数据科学的许多模型章节: https://r4ds.had.co.nz/many-models.html

    library(tidyverse)
    make_model <- function(data){
      lm(Sepal.Length~Sepal.Width,data)
    }
    
    iris %>%
      group_by(Species) %>%
      nest() %>% 
      mutate(lm = map(data,
                      make_model)) %>% 
      mutate(tidy = map(lm,
                        broom::tidy)) %>% 
      unnest(tidy)
    

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      相关资源
      最近更新 更多