vlambda博客
学习文章列表

R语言数据分析系列-临床三线表


如上图,是摘自一篇英文文献的表1,相信大家也有经常用到,这是一张三线表,用于描述病人的基本特征,这也算是每篇医学研究论文不可或缺的步骤。不过,在分享这期内容之前,我想绝大多数的人在制作这样一张表格的时候都是对各项指标一个一个使用统计软件计算,然后再把得到的统计量一一填入表格,或许这对指标不多,数据量较小的数据可能适用,但是当数据量增大,变量增多的时候可能就容易出错了,而且也很费时。因此,本期将为大家介绍一种简便的,又不容易出错的方法----使用R语言的tableone包。

 

接下来,我就为大家演示一下如何在R语言中绘制三线表,请同行多指教。


#我们首先还是先看看我们需要准备的数据---病人的临床信息。



我们在R语言中读取数据后,查看数据前6行,我们得到该数据的一些基本信息。本例中总共有10个变量,每行代表一个病人这10个指标的信息。

 

R语言数据分析系列-临床三线表


#接下来我们加载R包,如果没有,可以自行安装

R语言数据分析系列-临床三线表


 

#在本案例中,我们将使用最后一个变量(出血)作为分组依据,分析出血与无出血两组病人的其他9个指标的基本情况,并统计两组病人这9个指标是否存在统计学差异。代码如下:其中,vars表示除分组依据之外的其他9个指标,strata表示以出血为分组依据。

 

R语言数据分析系列-临床三线表


#其实,两行代码之后,我们就已经得到了我们的三线表,我们通过以下代我们的结果

 

R语言数据分析系列-临床三线表



#如上,我们可以看到无出血病人是75个,有出血是26个;两组病人的年龄age的均值是分别对应62.6857.00,并且p值等于0.016,小于0.05,说明两组病人的age是存在统计学差异的;另外,我们也可以得到两组病人性别分布的信息,p <0.001,也是有差异的,以此类推,我们可以大概了解两组病人的临床病理特征的差异。

 

#为了使结果更加具有可读性,我们可以这样做:


R语言数据分析系列-临床三线表


我们加载knitr包,对数据结果进行重排,结果如下:

R语言数据分析系列-临床三线表



#我们同样得到一张表格,与之前比较,会显得更加简洁。

 

#我们可能需要将我们的结果输出到R以外的载体,以便在其他软件上使用或进一步编辑,为此,我们需要将结果导出,代码如下:


R语言数据分析系列-临床三线表



在我们的工作目录下会得到一个tableone.csv的文件,用excel打开:

R语言数据分析系列-临床三线表



 

完美!!!!!

这样的表格只要再稍微修饰,就是我们熟悉的三线表了。

 

 

---------------------------------------------------------------------------------------------------------------------------------

今天就跟大家分享到这里吧,如果大家感兴趣的话,可以加笔者的企鹅获取完整的代码或做进一步的交流,谢谢!