使用 purrr、broom 的许多单变量模型的整洁输出
Tidy output from many single-variable models using purrr, broom
我有一个数据框,它包含一个二进制结果列 (y
) 和多个独立的预测列 (x1
、x2
、x3
... ).
我想 运行 许多单变量逻辑回归模型(例如 y ~ x1
、y ~ x2
、y ~ x3
),并提取指数系数(优势比), 95% 置信区间和每个模型的 p 值到 dataframe/tibble 的行中。在我看来,使用 purrr 和 broom 的组合应该可以解决这个问题。
问题类似,但我无法计算出以下步骤:
- 仅提取我需要的值并且
- 整理成 dataframe/tibble。
根据引用问题中的示例工作:
library(tidyverse)
library(broom)
df <- mtcars
df %>%
names() %>%
paste('am~',.) %>%
map(~glm(as.formula(.x), data= df, family = "binomial"))
睡了一觉之后,我想到了解决方案。需要使用 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)")
我有一个数据框,它包含一个二进制结果列 (y
) 和多个独立的预测列 (x1
、x2
、x3
... ).
我想 运行 许多单变量逻辑回归模型(例如 y ~ x1
、y ~ x2
、y ~ x3
),并提取指数系数(优势比), 95% 置信区间和每个模型的 p 值到 dataframe/tibble 的行中。在我看来,使用 purrr 和 broom 的组合应该可以解决这个问题。
- 仅提取我需要的值并且
- 整理成 dataframe/tibble。
根据引用问题中的示例工作:
library(tidyverse)
library(broom)
df <- mtcars
df %>%
names() %>%
paste('am~',.) %>%
map(~glm(as.formula(.x), data= df, family = "binomial"))
睡了一觉之后,我想到了解决方案。需要使用 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)")