如何为tbl_survfit添加多时间点独立标题?解决长度限制报错
问题描述
使用tbl_survfit展示生存分析结果时,希望为150天和200天两个时间点分别设置独立的列标题,但传入长度为2的label_header向量时触发报错:
Error:
statistic=andlabel_header=arguments must be strings of length one.
原有可运行代码:
survfit(Surv(time, DEATH_EVENT) ~ 1, data = HF %>% filter(age <= 70)) %>% tbl_survfit( times = c(150,200), label_header = "**150 Day survival (95% CI)**" )
解决方案
tbl_survfit提供两种方式实现多时间点的独立标题设置,具体如下:
方法1:模板变量自动生成标题
利用label_header支持的{time}模板变量,自动匹配每个时间点生成对应标题,写法最简洁:
survfit(Surv(time, DEATH_EVENT) ~ 1, data = HF %>% filter(age <= 70)) %>% tbl_survfit( times = c(150,200), label_header = "**{time} Day survival (95% CI)**" )
方法2:手动指定列标题
通过modify_header函数为每个统计列单独设置标题,适合需要自定义特殊格式的场景:
survfit(Surv(time, DEATH_EVENT) ~ 1, data = HF %>% filter(age <= 70)) %>% tbl_survfit(times = c(150, 200)) %>% modify_header( all_stat_cols() ~ c("**150 Day survival (95% CI)**", "**200 Day survival (95% CI)**") )
报错原因说明
label_header参数仅接受单个字符串(支持模板语法),而非字符串向量,直接传入长度为2的向量会触发参数验证错误。
内容的提问来源于stack exchange,提问作者Antonio
相关产品推荐
相关产品推荐

