2

我有一个数据框,它包含一个二进制结果列 ( y) 和多个独立的预测变量列 ( x1, x2, x3...)。

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

这个问题很相似,但我无法解决以下步骤:

  1. 只提取我需要的值和
  2. 整理成数据框/小标题。

从引用问题中的示例工作:

library(tidyverse)
library(broom)

df <- mtcars

df %>%
 names() %>%
 paste('am~',.) %>%
 map(~glm(as.formula(.x), data= df, family = "binomial"))
4

1 回答 1

4

睡在上面之后,我想到了解决方案。需要使用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)")
于 2017-02-10T15:33:32.937 回答