临床研究中常需要绘制两组或多组患者(如非AKI组和AKI组)的基线特征表。
下图就是临床中常见的基线特征表。
那么在R中怎么快速绘制绘制临床论文中的基线特征表1?
今天介绍一个新的绘制基线表的包——compareGroups
。
目 录
compareGroups
包可以通过分组变量来创建单变量分析结果的基线特征表,在创建出表格后可以导出各种格式用于报告。
在使用之前先安装和加载R包。
install.packages("compareGroups") # 安装包
library(compareGroups) # 加载包
PREDIMED研究是一项随机、多中心队列研究,共7000余名研究对象,选取其中部分数据进行演示说明。
研究人群在纳入研究前时没有心血管疾病,但是有心血管风险。
将研究人群随机分为3组,每组采用不同的饮食(对照组+低脂饮食、橄榄油+地中海饮食、坚果+地中海饮食),然后随访观察主要不良心血管事件的发生率。
data(predimed) # 加载数据集
View(predimed) # 预览数据集
数据集中变量介绍:
group # 分组变量,不同的饮食方式(Control; MedDiet + Nuts; MedDiet + VOO)
sex # 性别,男性和女性
age # 年龄
smoke # 吸烟,三个水平Never、Current、Former
bmi # 体重指数
waist # 腰围
wth # 腰高比
htn # 因子,是否为高血压,No和Yes
diab # 因子,是否为糖尿病,No和Yes
hyperchol # 因子,是否为高血脂,No和Yes
famhist # 因子,是否有冠心病家族史,No和Yes
hormo # 因子,是否使用激素替代疗法,No和Yes
p14 # MeDiet坚持得分
toevent # 主要结局的随访时间(年)。
event # 因子,是否发生感兴趣结局,No和Yes
看下数据集各变量信息。
str(predimed) # 查看数据集结构
从上面我们可以看到,数据集中的分类变量都显示为因子,并且都添加了标签。
在使用compareGroups
包前需要注意下:
今天用来绘制基线特征表的主要是compareGroups
包的descrTable()
函数。
先不分组,描述下总样本人群。
descrTable( ~ ., data = predimed)
.
,则默认数据集的全部变量进行统计。从上面可以看出,基线表结果显示的很清楚,虽然大部分变量都没有缺失值,但是hormo变量存在缺失值。
在上面我们简单的统计描述了下总样本人群的基线特征,下面可以添加分组变量分析看看。
group
为分类变量,也是基线表的y变量,表示不同的饮食方式。
descrTable(group ~ ., data = predimed)
上面我们简单统计描述了下总研究人群以及添加分组变量后研究人群的基线特征,但是我们纳入的是数据集中的所有变量,有时我们不需要这么多的变量进行统计分析。
下面我们只纳入数据集中的部分变量进行统计分析。
比如我只纳入五个变量进行分析。
descrTable(group ~ age + sex + smoke + waist + hormo, # 左边为分组变量,右边为基线表行变量
data = predimed) # 数据集
如果基线表纳入的变量较多,也可以选择移除数据集中变量的形式来绘制基线特征表。
可以通过-
号的形式移除下面这四个变量。
descrTable(group ~ . - toevent - event - diab - p14,
data = predimed)
除了选择部分变量进行统计分析外,我们还可以选择亚组人群进行分析,比如说只选取女性进行分析。
descrTable(group ~ age + smoke + waist + hormo + toevent + event + diab + p14,
data = predimed,
subset = sex == "Female")
除了选择亚组人群外,还可以在亚组人群基础上选取特定变量进行研究。
descrTable(group ~ age + sex + smoke + waist + hormo,
data = predimed,
selec = list(hormo = sex == "Female", waist = waist > 20))
基线特征表中的变量可以在公式中出现两次,比如说bmi:
descrTable(group ~ age + sex + bmi + bmi + waist + hormo,
data = predimed,
selec = list(bmi.1 = !is.na(hormo)))
输出的基线表中会报告两次bmi的统计结果,第一个bmi表示所有患者的bmi结果,第二个bmi是报告hormo变量中排除缺失值时研究患者的bmi结果。
默认情况下,连续变量认为是正态分布变量,在生成基线特征表时,将使用均值+标准差
描述连续变量。
如果要指定某一连续变量为非正态分布变量,比如说指定waist
为非正态分布变量,则:
descrTable(group ~ age + smoke + waist + hormo,
data = predimed,
method = c(waist = 2))
上面的结果中waist
变量被描述为中位数+四分位数。
method中的数字:1表示正态分布;2表示连续非正态;3表示分类变量;NA表示执行Shapiro-Wilks检验来确定是正态还是非正态分布。
如果参数method使用的是NA,还可以使用alpha参数来指定统计学意义的阈值。
有时我们需要绘制分层后的基线特征表,绘制分层基线特征表的函数为strataTable()
函数。
绘制很简单,先使用descrTable()函数绘制一个基线表,在使用strataTable()函数绘制分层基线表。
restab <- descrTable(group ~ age + smoke + bmi + waist + hormo,
data = predimed)
strataTable(restab, "sex")
如上图所示,我们就绘制好了分层基线特征表了。
在绘制好基线特征表后,就是输出表格了。
R包支持输出的格式有很多(如CSV/HTML/LaTeX/PDF/Markdown/Word/Excel
),我们一般常用csv/xls/word/PDF格式,所以就演示输出这几种格式文件。
## 先绘制一个基线特征表
restab <- descrTable(group ~ age + smoke + bmi + waist + hormo,
data = predimed)
restab
export2csv(restab, file='table1.csv')
export2xls(restab, file='table1.xlsx')
export2word(restab, file='table1.docx')
export2pdf(restab, file='table1.pdf')
上面的四种导入方式各有各的优点,自己看情况输出自己需要的格式。
这个包我会好好研究下,后面还会有推文介绍怎么计算OR值/HR值、基线表输出结果调整等。
1. compareGroups包帮助文件
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有