在单个数据框中获得多个回归的结果
get the results of several regressions in a single dataframe
我有一个像这样的数据框,有 10 列 Alcohol(从 alcohol1 到 alcohol10)
ID Status matching Alcohol1 Alcohol2
1 1 1 1 0
2 0 1 0 1
3 0 2 0 1
4 1 2 0 0
我有很多逻辑回归模型 运行 使用酒精列作为解释变量。我创建了一个执行此操作的函数。
现在我想在一个数据框中总结我所有模型的结果。
我需要估计系数、95% 置信区间的下限、上限和 p 值。我设法得到了我的估计系数和 pvalue 但我无法得到置信区间(或也适合的方差)(通常通过摘要获得)
以下是我使用的函数:
library(broom)
library(purrr)
f1 <- function(column) {
tidy(clogit(
as.formula(
paste("status ~", column, "+ strata(matching)")),
data = table
))
}
model_results <- map_dfr(
set_names(names(table)[4:14]),
f1
)
预期的结果是这样的
term estimate lower.95 upper.95 pvalue
Alcohol1
Alcohol2
…
提前感谢您的帮助
你还没有真正给我们一个可重现的例子,但我猜测将 conf.int = TRUE
添加到你的 tidy()
调用会做你想要的(默认名称是 conf.low
和 conf.high
,您可以根据需要添加对 rename
的调用)。
我为了好玩而制作了工作流程“pipier”(但你的方式非常好)。可能需要一些 select
的东西,或者可能向 map_dfr
添加一个 .id =
参数(没有 MCVE 就无法分辨)。
model_results <- (
names(table)[4:14]
%>% set_names()
%>% map(~ reformulate(c(., "strata(matching)"), response = "status"))
%>% map(clogit, data = table)
%>% map_dfr(tidy, conf.int = TRUE, .id = "column")
)
我有一个像这样的数据框,有 10 列 Alcohol(从 alcohol1 到 alcohol10)
ID Status matching Alcohol1 Alcohol2
1 1 1 1 0
2 0 1 0 1
3 0 2 0 1
4 1 2 0 0
我有很多逻辑回归模型 运行 使用酒精列作为解释变量。我创建了一个执行此操作的函数。
现在我想在一个数据框中总结我所有模型的结果。 我需要估计系数、95% 置信区间的下限、上限和 p 值。我设法得到了我的估计系数和 pvalue 但我无法得到置信区间(或也适合的方差)(通常通过摘要获得)
以下是我使用的函数:
library(broom)
library(purrr)
f1 <- function(column) {
tidy(clogit(
as.formula(
paste("status ~", column, "+ strata(matching)")),
data = table
))
}
model_results <- map_dfr(
set_names(names(table)[4:14]),
f1
)
预期的结果是这样的
term estimate lower.95 upper.95 pvalue
Alcohol1
Alcohol2
…
提前感谢您的帮助
你还没有真正给我们一个可重现的例子,但我猜测将 conf.int = TRUE
添加到你的 tidy()
调用会做你想要的(默认名称是 conf.low
和 conf.high
,您可以根据需要添加对 rename
的调用)。
我为了好玩而制作了工作流程“pipier”(但你的方式非常好)。可能需要一些 select
的东西,或者可能向 map_dfr
添加一个 .id =
参数(没有 MCVE 就无法分辨)。
model_results <- (
names(table)[4:14]
%>% set_names()
%>% map(~ reformulate(c(., "strata(matching)"), response = "status"))
%>% map(clogit, data = table)
%>% map_dfr(tidy, conf.int = TRUE, .id = "column")
)