手把手教你绘制临床三线表

2019-11-13 19:30:53 浏览数 (1)

点击蓝字关注我们

各位科研芝士的小伙伴,本站本着给大家提供科研便利的宗旨,继续给大家提供干货, 一般的临床研究,统计分析就“三把斧”:统计描述、差异性比较和回归建模。R语言完美解决了统计分析“三把斧”结果整理成规范三线表的麻烦。在统计描述上,R可以根据不同数据的特征给出不同的统计描述方法,在差异性比较方面,R可以给出不同数据比较的不同差异性比较方法,包括t、F、卡方、fisher法和秩和检验;在回归分析上,不仅是Cox回归,线性回归、logistic回归,R同样可以形成规范的表格。这些表格,如果人工来整理,不仅慢,而且不规范!今天我们就攻下这个高地,学习一下如何整理成三线表。

1. 准备工作

导入R语言两个重要的包 tableone和survival工具包,导入数据pbc(该数据来自survival包中梅奥诊所原发性胆汁性肝硬化pbc数据,共有424例PBC患者参与了10年的生存分析,具体数据描述可以在R帮助中搜索pbc查看),直接install和library即可

2. 过滤缺失值

我们发现pbc数据中含有较多的缺失值,首先我们简单统计每列的缺失值个数,对存在缺失值的行,我们进行了剔除,接着我们继续进行统计一下缺失值,如下,发现最开始一些列存在缺失值,剔除之后,缺失值个数均变为0了。

3. 数据类型

常看数据类型,发现该数据集一共20个变量,276行:

将分类变量转化为因子变量,可以看到有一些分类变量是数值型,比如status,至于为什么都需要转换,看到后面就知道了。

4.创建三线表

创建table one的函数非常简单,CreatTableOne()函数只需要指出需描述的变量(即前面的vars变量列表),strata参数说明按照trt变量分层即可。注意的是如果前面没有指定分类变量类型,tableone会以数值型变量处理你的变量,这也就是需要提前指定分类变量的原因。我们首先不填充分层变量,你会发现主要是对总体数据的统计,如下:

5. 填充分层变量

我们按照thr分层变量,进行填充,结果如下,可以看到一个非常熟悉的表格了,行分别为n(病例个数)、time、status等等需要比较的变量,列为不同分组。可以发现计量数据都是用“(mean (sd))”描述,分类变量用“ (%) ”表示,而且还神奇的算出了P值。默认情况下,tableone使用正态分布方法分析资料,因此会出现“(mean (sd))”的描述,但是像本例中的临床生化指标,属于偏态分布,用“(mean (sd))”描述是错误的,我们需要进一步矫正。

6. 指定统计分析方法

在这里我们通过nonnormal =指定对血清胆红素bili)、血清胆固醇(chol)、尿铜(copper)等临床生化非正态指标用非参检验方法,对生存状态("status")、临床分期(stage)用Fisher检验。同时用cramVars参数可以显示两个水平的分类变量构成比,smd参数为显示standardized mean differences。

可以看到指定的非正态资料使用“median [IQR]”来表示数据了,而且在test列也出现了P值计算使用的方法,空着的地方代表使用默认的正态分布的分析方法,最后一列为SMD数值,这一切都是我们需要的。

7. 文件导出

结果如下:

Ok,这样的话我们就可以实现三线表的绘制,是不是很简单呢!

0 人点赞