使用purrr,扫帚的许多单变量模型的整洁输出

时间:2017-02-09 14:49:58

标签: r purrr broom

我的数据框包含二进制结果列(y)和多个独立预测列(x1x2x3 ...)。

我想运行许多单变量逻辑回归模型(例如y ~ x1y ~ x2y ~ x3),并提取指数系数(优势比),95%置信区间每个模型的p值和数据帧/ tibble的行。在我看来,使用purrr和扫帚的组合应该可以解决这个问题。

This问题类似,但我无法解决以下步骤:

  1. 仅提取我需要的值和
  2. 整理成数据帧/ tibble。
  3. 使用引用问题中的示例:

    library(tidyverse)
    library(broom)
    
    df <- mtcars
    
    df %>%
     names() %>%
     paste('am~',.) %>%
     map(~glm(as.formula(.x), data= df, family = "binomial"))
    

1 个答案:

答案 0 :(得分:2)

睡觉后,解决方案发生在我身上。需要使用map_df来运行每个模型,并tidy从每个模型中提取值。

希望这对其他人有用:

library(tidyverse)
library(broom)

df <- mtcars

output <- df %>%
  select(-am) %>%
  names() %>%
  paste('am~',.) %>%
  map_df(~tidy(glm(as.formula(.x), 
               data= df, 
               family = "binomial"), 
               conf.int=TRUE, 
               exponentiate=TRUE)) %>%
  filter(term !="(Intercept)")