700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > R|tableone 快速绘制文章“表一”-基线特征三线表

R|tableone 快速绘制文章“表一”-基线特征三线表

时间:2023-03-07 04:31:21

相关推荐

R|tableone 快速绘制文章“表一”-基线特征三线表

首发于“生信补给站” :https://mp./s/LJfgxbTqsp8egnQxEI0nJg

生物医学或其他研究论文中的“表一”多为基线特征的描述性统计。使用R单独进行统计,汇总,然后结果复制到excel表中,耗时耗力且易错!

tableone包“应运而生”,可以非常简单快捷的解决这个问题,重点是学习成本很低,大概几分钟?

一 载入数据,R包

## install.packages("tableone")

library(tableone)

library(survival)

data(pbc)

head(pbc)

二 单组汇总

1 汇总整个数据集

对pbc整个数据集进行描述汇总,使用CreateTableOne()即可

tab1 <- CreateTableOne(data = pbc)

print(tab1)

由于数据中的分类变量是数值形式,所以分类变量展示的也是均值(标准差)。

2 设置变量类型

dput(names(pbc)) # 输出据集变量名称

## 需要汇总的变量

myVars <- c("time", "status", "trt", "age", "sex", "ascites", "edema", "bili", "copper", "ast", "stage")

## 需要转为分类变量的变量

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

## Create a TableOne object

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

print(tab2, showAllLevels = TRUE)

showAllLevels = TRUE 会展示分类变量的所有分类因子的结果。

此处随意选择一些变量进行功能展示, 分类变量显示计数和百分比 。

3 非正态分布变量

由于默认连续变量呈正态分布,因此上面的连续变量均表示为均数+标准差。

实际数据中的非正态分布数据,可通过nonnormal指定,则此变量展示为中位数(四分位数)。

#假设"bili","ast","copper"非正态分布

biomarkers <- c("bili","copper","ast")

print(tab2, nonnormal = biomarkers)

可见"bili","ast","copper"均用中位数(四分位数)表示;如果设置nonnormal = TRUE,则所有变量都按非正态分布处理。

三 多组汇总

1 分组统计

实际结果中,通常需要对数据集按照某个变量的分组进行汇总。下面展示使用trt进行分组汇总:

tab3 <- CreateTableOne(vars = myVars, strata = "trt" , data = pbc, factorVars = catVars)

tab3

注意NA不作为分组

结果可看出,对trt进行分组且对每一组均进行了汇总,且统计输出了检验的P值。

检验方法:分类变量默认使用卡方检验(chisq.test());连续变量默认使用方差分析(oneway.test()),当两组时方差分析等用于t检验。

2 定义检验方式

非正态性的数据展示方式为中位数(四分位数),检验方式也最好不使用T检验:

非正态分布的连续变量使用kruskal.test()检验,两组间比较时,kruskal.test()和wilcox.test()等效;

分类变量可使用fisher.test()进行fisher精确检验,通过exact指定进行fisher精确检验的变量。

#addOverall 添加Overall信息

tab4 <- CreateTableOne(vars = myVars, strata = "trt" , data = pbc, factorVars = catVars,

addOverall = TRUE )

#exact设置fisher精确检验的变量

print(tab4, nonnormal = biomarkers, exact = "stage")

四 导出结果

write.csv一键导出结果

tab4Mat <- print(tab4, nonnormal = biomarkers, exact = "stage", quote = FALSE, noSpaces = TRUE, printToggle = FALSE, showAllLevels = TRUE)

## 保存为 CSV 格式文件

write.csv(tab4Mat, file = "myTable.csv")

随便套用了一个表格格式,可以在excel中弄成喜(文)欢(章)的样式,这个自己发

参考资料:

https://cran.r-/web/packages/tableone/vignettes/introduction.html

PS:有个交流的讨论组,想沟通交流的,后台回复”入群“。

◆ ◆ ◆ ◆ ◆

精心整理(含图版)|R语言生信分析,可视化,你要的全拿走,建议收藏!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。