如何为gtsummary::tbl_regression配置科学计数法格式p值
gtsummary::tbl_regression 自定义p值显示规则方案 完全可以通过自定义p值格式化函数实现你需要的显示规则,具体操作如下:
1. 自定义p值格式化函数
首先编写符合你需求的格式化函数,逻辑为:p值小于0.001时用科学计数法展示2位尾数,大于等于0.001时保留3位小数:
format_p_custom <- function(p) { dplyr::if_else( p < 0.001, formatC(p, format = "e", digits = 2, trim = TRUE), # 科学计数法输出,尾数保留2位小数,去除多余空格 formatC(p, format = "f", digits = 3, trim = TRUE) # 固定小数位输出,保留3位小数,去除多余空格 ) }
2. 单表调用配置
只需要在tbl_regression()中传入pvalue_fun参数指定自定义函数即可,完整示例代码如下:
# 加载依赖包 library(gtsummary) library(tidyverse) theme_gtsummary_compact() # 自定义p值格式化函数 format_p_custom <- function(p) { dplyr::if_else( p < 0.001, formatC(p, format = "e", digits = 2, trim = TRUE), formatC(p, format = "f", digits = 3, trim = TRUE) ) } # 构建线性模型 mod1 <- lm(mpg ~ cyl + gear, data = mtcars %>% dplyr::mutate(cyl = factor(cyl))) # 生成回归表,指定p值格式化规则 tbl_regression( mod1, pvalue_fun = format_p_custom )
运行后输出的回归表p值就会符合你的预期:cyl 6对应2.06e-04、cyl 8对应5.76e-08、gear对应0.422。
3. 全局生效配置
如果你需要所有gtsummary生成的表格都默认使用该p值规则,可以直接在主题中设置,无需每次调用传参:
# 设置全局主题,默认使用自定义p值格式 theme_gtsummary_compact( pvalue_fun = format_p_custom ) # 后续生成所有回归表都会自动应用规则 tbl_regression(mod1)
内容的提问来源于stack exchange,提问作者olveraa
相关产品推荐
相关产品推荐

