lM_*_*__3 1 r tidy logistic-regression
我有一个像这样的数据框,有 10 列酒精(从酒精1到酒精10)
\nID Status matching Alcohol1 Alcohol2\n 1 1 1 1 0\n 2 0 1 0 1\n 3 0 2 0 1\n 4 1 2 0 0\nRun Code Online (Sandbox Code Playgroud)\n我有许多逻辑回归模型可以使用酒精列作为解释变量来运行。我创建了一个执行此操作的函数。
\n现在我想在一个数据框中汇总所有模型的结果。\n我需要估计系数、95% 置信区间的下限、上限和 p 值。我设法获得了估计系数和 p 值,但无法获得置信区间(或也适合的方差)(通常通过摘要获得)
\n以下是我使用的功能:
\nlibrary(broom)\nlibrary(purrr)\n\nf1 <- function(column) {\n tidy(clogit(\n as.formula(\n paste("status ~", column, "+ strata(matching)")),\n data = table\n ))\n }\n\nmodel_results <- map_dfr(\n set_names(names(table)[4:14]), \n f1\n)\nRun Code Online (Sandbox Code Playgroud)\n预期的结果会是这样的
\nterm estimate lower.95 upper.95 pvalue\nAlcohol1 \nAlcohol2 \n\xe2\x80\xa6 \nRun Code Online (Sandbox Code Playgroud)\n预先感谢您的帮助
\n您还没有真正给我们一个可重现的示例,但我猜测添加conf.int = TRUE到您的tidy()调用将执行您想要的操作(默认名称是conf.low和,如果您愿意conf.high,您可以添加调用)。rename
我为了好玩而将工作流程设置为“pipier”(但你的方式非常好)。可能需要一些select东西,或者可能添加一个.id = 参数map_dfr(没有 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")
)
Run Code Online (Sandbox Code Playgroud)