1. 为什么临床研究离不开Table1三线表
在医学论文和临床研究报告中,Table1三线表几乎是标配。我第一次投稿时,审稿人直接指出"缺少规范的基线特征表",这才意识到这个表格的重要性。Table1的核心作用是展示研究人群的基线特征,通常包括人口统计学资料、临床指标和实验室检查结果等,让读者一眼就能了解研究对象的基本情况。
传统制作方法需要手动计算均值、标准差、频数和百分比,再用Word画表格。我做过最痛苦的一次是处理包含30个变量的队列研究数据,光是调整格式就花了整整两天,中途还因为修改数据重新来过。更麻烦的是当分组变量变化时,所有统计量和P值都要重新计算。
compareGroups包的出现彻底改变了这个局面。这个专门为临床研究设计的R包,能用几行代码自动完成变量描述、组间比较和三线表生成。我实测下来,原先需要两天的工作现在15分钟就能搞定,而且完全不用担心计算错误或格式混乱。
2. 快速上手compareGroups三部曲
2.1 安装与数据准备
建议通过CRAN安装最新稳定版:
install.packages("compareGroups") library(compareGroups)包内置的regicor数据集很适合练手,包含2294例心血管疾病患者的25个临床变量:
data("regicor", package="compareGroups") str(regicor)关键点在于数据预处理:
- 分类变量要转为factor并设置好levels
- 连续变量检查正态性
- 给每个变量添加label属性(这会是表格中的显示名称)
比如处理吸烟状态变量:
regicor$smoker <- factor(regicor$smoker, levels = c(1,2,3), labels = c("Never", "Current", "Former")) attr(regicor$smoker, "label") <- "Smoking status"2.2 核心三步走流程
第一步:compareGroups()计算
res <- compareGroups(year ~ . - id, data = regicor)这个函数会自动:
- 识别变量类型(连续/分类)
- 选择合适的统计方法(t检验/方差分析/卡方检验等)
- 计算各组统计量和P值
第二步:createTable()构建
tab <- createTable(res) print(tab)默认输出包含:
- 连续变量:均值±标准差
- 分类变量:例数(百分比)
- 各组P值
第三步:export2word()输出
export2word(tab, file = "Table1.docx")导出的Word文档直接就是期刊要求的三线表格式,不用再调整。
3. 实用进阶技巧
3.1 灵活控制统计方法
对于非正态分布数据,可以指定使用中位数和四分位数:
res <- compareGroups(year ~ age + chol, data = regicor, method = c(chol = 2)) # 2表示非参数方法 createTable(res)输出会自动变为"中位数[Q1;Q3]"格式。
3.2 亚组分析技巧
比如只分析女性患者,且胆固醇>200的亚组:
res <- compareGroups(year ~ age + smoker + chol, data = regicor, subset = sex == "Female", selec = list(chol > 200))3.3 表格美化技巧
调整小数位数、显示样本量、添加趋势P值:
createTable(res, digits = c(age=1, chol=2), show.n = TRUE, show.p.trend = TRUE)4. 避坑指南
- 变量标签问题:一定要给变量添加label属性,否则表格会显示变量名而非描述性文字
attr(regicor$age, "label") <- "Age (years)"- 缺失值处理:默认会排除缺失值,可用show.na=TRUE显示缺失情况
createTable(res, show.na = TRUE)- 多组比较校正:当分组>2组时,建议添加p.adj参数进行多重检验校正
createTable(res, show.p.mul = TRUE, p.adj = "fdr")- 生存数据分析:可以直接计算和显示HR值
res <- compareGroups(tdeath ~ age + sex + smoker, data = regicor, ref = 1) # 设置参考组 createTable(res, show.ratio = TRUE)这个包我用了三年多,最大的感受是:它真正理解了临床研究者的需求。从数据到论文表格的最后一公里,往往是最耗时的部分,而compareGroups就像个专业统计助手,把繁琐的计算和格式问题都解决了。特别是在论文修改阶段,当审稿人要求更换分组变量或增加某些指标时,只需修改一行代码就能重新生成表格,再也不用担心被数据整理耽误时间。