在R语言gtsummary包中添加Beta标准误(SE Beta)列
在gtsummary中添加Beta标准误列的方法
当然可以,gtsummary提供了灵活的自定义统计量列的功能,下面是两种常用的实现方式:
方法一:使用add_stat()函数(推荐)
add_stat()可以直接在回归表格中插入自定义统计量列,步骤如下:
- 加载包并拟合模型
library(gtsummary) library(broom) # 拟合线性模型示例 mod <- lm(mpg ~ wt + hp, data = mtcars)
- 生成表格并添加SE Beta列
tbl_regression(mod, exponentiate = FALSE) %>% add_stat( # 定义提取标准误的函数 fns = ~ tibble(SE_Beta = broom::tidy(.x) %>% pull(std.error)), # 指定列的位置(放在统计量列之后) location = ~ after_statistic, # 设置列标题 header = "**SE Beta**" )
方法二:使用modify_table_body()手动合并
如果需要更灵活的表格数据操作,可以直接修改表格的底层数据框:
tbl_regression(mod, exponentiate = FALSE) %>% # 合并标准误数据到表格主体 modify_table_body( ~ .x %>% left_join( broom::tidy(mod) %>% select(term, std.error), by = "term" ) ) %>% # 修改列标题 modify_table_header(std.error ~ "**SE Beta**") %>% # 调整列的位置到Beta值之后 relocate(std.error, .after = estimate)
注意事项
- 如果是拟合逻辑回归并使用
exponentiate = TRUE(展示OR值),上述代码提取的是原始Beta值的标准误,若需要OR值的标准误,需对原始SE进行指数转换。 - 自定义函数中,
.x代表当前传入的模型对象,可通过broom::tidy()提取所有模型系数的统计量。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

