【发布时间】:2019-03-20 11:22:25
【问题描述】:
短版:是否可以(除了对格式化的单元格内容进行反向处理)从报告使用finalfit 包生成的回归模型结果的表中提取系数?
背景:使用(惊人的)finalfit 包,我可以从回归模型生成结果表。我想在 Rmarkdown 文档的文本中报告其中一些相同的结果。我不想运行回归模型两次,一次在finalfit 中用于表格,一次用于生成要在文本中使用的输出。此外,finalfit 会处理系数(例如,将逻辑回归模型中的系数取幂以生成优势比,一致地格式化小数点),我不想重复这些步骤。
以下代码从逻辑回归模型生成格式化的结果表(注意:故意使用基本 R 代码作为模型):
library(finalfit)
library(dplyr)
explanatory = c("age", "sex.factor")
dependent = "mort_5yr"
colon_s %>%
## Crosstable
summary_factorlist(dependent, explanatory, fit_id=TRUE) %>%
ff_merge(
glm(
mort_5yr ~ age + sex.factor, family="binomial", data = colon_s
) %>%
fit2df(estimate_suffix=" (multivariable)")
) %>%
select(-c(fit_id, index)) %>%
dependent_label(colon_s, dependent)
如果不单独运行和处理 glm 模型,我看不出如何从该表(或生成它的管道)中提取 Sex:Male 的优势比。
直接提取单元格内容(如@LyzanderR 所建议)会产生以下字符串:“0.98 (0.76-1.27, p=0.888)” 需要提取相关系数、置信区间和 P 值。这几乎达到了结果,但考虑到它们之前都已计算并连接到此字符串中,因此并不理想。
注意:我很高兴使用不同的包来达到预期的效果。
【问题讨论】:
-
如果我理解正确你可以加
%>% select("OR (multivariable)") %>% slice(3) -
finalfit包处理系数并添加括号等以使表格看起来不错。如果我处理格式化表格中的单元格,我将需要再次剥离格式,这相对容易做到,但似乎有点麻烦,并且不适用于其他回归模型或单元格内容(即上面示例中的摘要列) )。
标签: r