zl程序教程

您现在的位置是:首页 >  其他

当前栏目

tableone包详解

2023-04-18 12:35:49 时间

实例解析

还是写一个例子帮助大家理解,用到的数据是R自带的pbc数据集。这个数据集是梅奥诊所收治的肝硬化病人的数据,共424个。

This data is from the Mayo Clinic trial in primary biliary cirrhosis (PBC) of the liver conducted between 1974 and 1984. A total of 424 PBC patients, referred to Mayo Clinic during that ten-year interval, met eligibility criteria for the randomized placebo controlled trial of the drug D-penicillamine。

这个数据集大概长这样:

R数据分析:tableone包的详细使用介绍

现在我想要看看整个数据集的描述性分析,那么我就可以:

CreateTableOne(data = pbc)

输出如下:

R数据分析:tableone包的详细使用介绍

看到没,所有的数值变量都给你以均值标准差的形式描述好了,因子变量频数百分比也描述好了,不用你再用什么SPSS一个一个来描述统计了。

等等,问题还是有滴,比如:

  • 数据库中其实有很多变量应该是因子类型的,但是都给整成整数型了
  • 连ID都给描述了,这玩意我不需要

我们来调整一下,比如我论文中只需要描述如下的变量:

myVars <- c("time", "status", "trt", "age", "sex", "ascites", "hepato",
          "spiders", "edema", "bili", "chol", "albumin", "copper", "alk.phos",
          "ast", "trig", "platelet", "protime", "stage")

并且,其中有些变量是因子类型:

catVars <- c("status", "trt", "ascites", "hepato",
             "spiders", "edema", "stage")

好了,规定好了以后我们重新进行描述:

tab2 <- CreateTableOne(vars = myVars, data = pbc, factorVars = catVars)

R数据分析:tableone包的详细使用介绍

看到没,此时所有我们规定的因子类型的变量都是用频数百分比进行表述的了。但是要注意的是,这个描述中所有的双水平因子都是只描述第二个水平,比如性别sex图中就只给出了女性f的水平,3水平及以上的因子所有水平都会描述。

当然啦,这个默认设定也是可以改的,比如我就是想要输出全水平,我就可以在打印的时候加上showAllLevels参数。

print(tab2, showAllLevels = TRUE, formatOptions = list(big.mark = ","))

R数据分析:tableone包的详细使用介绍

现在二水平因子的所有水平都在图中了。男女占比都有啦。

超级详细的描述

有可能你还想要看看每个你感兴趣的变量的分布什么的,缺失值什么的,tableone也可以做得到哦,直接给CreateTableOne对象进行summary,简单粗暴。

summary(tab2)

R数据分析:tableone包的详细使用介绍

R数据分析:tableone包的详细使用介绍

看看看,这个时候对于数值变量,缺失值数量,占比,均值标准差,四分位间距,偏度峰度全部给你;对于因子变量,缺失值数量,占比,水平数,频率和累计频率都在,要啥有啥。太好了。

分组描述加比较

tableone另外一个不可错过的功能就是分组描述并做统计检验,有可能你把你的研究对象分了两组,写文章的时候首先你要分组对比两组的基线资料撒,就用它啦,全部帮你搞定,包括所有基线资料的组间比较:

tab3 <- CreateTableOne(vars = myVars, strata = "trt" , data = pbc, factorVars = catVars)
print(tab3,  formatOptions = list(big.mark = ","))

看输出:

R数据分析:tableone包的详细使用介绍

简直美滋滋。

描述数据的导出

其实你大可以直接在你的CONSOLE中进行结果的复制粘贴,但是我还要给你写写如何导出描述表格,还不快快关注我。

运行下面的代码后你就可以看到描述的结果全在你的工作目录中了。

tab3Mat <- print(tab3, quote = FALSE, noSpaces = TRUE, printToggle = FALSE)
write.csv(tab3Mat, file = "myTable.csv")

R数据分析:tableone包的详细使用介绍

看到没,你再稍微做一调整立马就可以往你的论文中放了。