You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:30:11