如何为gtsummary的tbl_survfit指定生存概率的小数位数?
解决tbl_survfit指定生存概率小数位数的问题
你遇到的问题核心是对estimate_fun参数的用法理解有误:这个参数需要传入的是一个函数对象,而不是函数执行后的结果。你直接传style_percent(digits = 3)时,相当于提前调用了函数但没给输入数值,自然会报错要求传入百分比向量。
下面给你两种可行的解决方法:
方法1:自定义格式化函数
如果要把生存概率(0-1的小数)转成百分比并保留3位小数,直接写个简单的包装函数:
library(gtsummary) library(survival) # 自定义函数:接收数值向量,转百分比+保留3位小数 format_surv_pct <- function(x) { style_percent(x, digits = 3) } # 示例生存分析模型 fit <- survfit(Surv(time, status) ~ sex, data = lung) # 生成指定时间点的生存表,传入自定义函数 tbl_survfit(fit, times = c(100, 200), estimate_fun = format_surv_pct)
方法2:用partial固定参数(更简洁)
用purrr::partial直接固定style_percent的digits参数,生成符合要求的函数:
tbl_survfit(fit, times = c(100, 200), estimate_fun = purrr::partial(style_percent, digits = 3))
如果你想保留小数形式(不是百分比)
直接用style_number指定小数位数即可:
tbl_survfit(fit, times = c(100, 200), estimate_fun = style_number(digits = 3))
另外,如果你已经生成了表格,也可以用modify_fmt_fun单独调整列的格式,比如只修改生存概率列:
tbl_survfit(fit, times = c(100, 200)) %>% modify_fmt_fun(stat_0 ~ style_number(digits = 3))
内容的提问来源于stack exchange,提问作者AstridP
相关产品推荐
相关产品推荐

