欢迎大家关注我的公众号:一只勤奋的科研喵
R语言|14介绍了基于HR结果绘制亚组分析森林图,但还缺少生存率。
本期介绍基于生存率的亚组分析森林图
生存率是基于KM曲线函数结果,关于某变量的KM曲线及结果已在 R语言|8. Kaplan-Meier曲线及美化和 R语言|10. KM曲线代码进阶:各种亚组分析助你深入分析数据详细介绍。
但是,有些小伙伴想做某变量在所有亚组下的生存率,那就需要我们做很多组KM曲线,例如上图8个变量,若做KM曲线就要做17幅,会占用大量文章面积,得不偿失。
而亚组分析森林图能清晰、明了的总结研究变量在各个亚组的n年生存率差异。结合上期介绍的HR结果将会使文章增色不少。
亚组分析三线表结果
代码设计思路
1、大框架:同基于HR的亚组分析一样,基于生存率的亚组分析三线表也是3大类:变量名、各亚组人数及OS% (95%CI)。[本例中亚组人群包括了实际人数和死亡人数。OS也是包括了放疗组和非放疗组 .] 大框架是一致。
2、核心函数代码:
survfit( ):构建亚组分析生存函数模型,来源于survival包;
survdiff( ): 提取log-rank test 的P值,来源于survival包;
tbl_survfit( ): 提取亚组分析生存率和死亡人数,gtsummary包【神包,五星推荐】点击看介绍:R语言| 日常笔记1
CreateTableOne( ):提取各亚组患者数,来源于tableone包;
forestplot( ):绘制森林图,来源于forestplot包
3、辅助函数代码:
rbind( ), 数据上下组合;
cbind( ), 数据左右组合;
str_remove_all( ),删除单元格中符合条件的函数;
separate( ), 将一列数据按条件分为几列,它的反面是paste0(),将几列数据组合为1列【即HR(95%CI)的组合与拆分】
a[行,列],对行列进行提取或删除,b<- a[,-1],a表删除第一列并命名为b表;b<- a[-1,],a表删除第一行并命名为b表。
4、注意同第14期一样,亚变量要处理为1234的数字格式,变量2分类在前,3分类在后,以此类推。
5、步骤:构建for循环,用上述函数提取信息并组合成表。先收集受放疗组在亚变量为1的信息,然后是2,3...。再收集不接受放疗组在亚变量为1的信息,然后是2,3...。也就是说要建6-8个for循环。但代码是一摸一样的,只需修改接受提取信息表的名字、亚组名称和是否放疗即可。
难点还是表的组合,可以手动组合,更快更简单。