科研汪A:基线表格制作起来真丫麻烦!
科研汪B:神奇的tableone包可以帮助我们这群苦逼科研汪快速制作基线表哟。
一、科技论文中Table1(基线资料表)的常见结构和相应统计学方法
二、使用R语言tableone包快速制作Table1
1.读入数据
library(tableone)
mydata <- readxl::read_excel('Table 1示例数据库.xlsx')
View(mydata)
str(mydata)
2.查看数据集变量名称
dput(names(mydata))
c("low", "age", "lwt", "race", "smoke", "ptl", "ht", "ui", "ftv",
"bwt", "smoke_plus_ht", "Nsmoke", "Nht")
3.指定表格中的变量
vars <- c("age", "lwt", "race", "smoke", "ptl", "ht", "ui", "ftv", "bwt")
#以low作为分组变量,所以不加入表格中
4.指定分类变量
factorvars <- c("race", "smoke", "ptl", "ht", "ui", "ftv")
5.使用CreatTableone函数创建初步表格并查看
tableone_groups <- CreateTableOne(vars = vars, #指定纳入的变量
strata = 'low', #指定分组变量#若不指定则对总体分析做表#
data = mydata, #指定数据集
factorVars = factorvars) #指定分类变量
tableone_groups #生成初步表格
6.通过查看初步表格,指定非正态连续变量
nonnormalvars = c("lwt", "bwt")
7.指定哪些变量采用Fisher确切法(建议所以分类变量均使用Fisher确切法)
exactvars <- c("race", "smoke", "ptl", "ht", "ui", "ftv")
8.制定最终表格,使用print函数
table1_groups <- print(x = tableone_groups, #指定表格
contDigits = 1, #连续变量保留1位小数
#catDigits、contDigits、pDigits三个参数设置分类变量、连续变量和P值保留几位小数位#
nonnormal = nonnormalvars, #指定非正态连续变量
exact = exactvars, #指定需要Fisher确切法统计的变量
showAllLevels = FALSE, #TRUE则显示所有分类变量水平的频数和百分比
noSpaces = TRUE, #删除用于对齐的空格
printToggle = FALSE) #不展示输出结果
9.写出表格
write.csv(table1_groups, file="Table 1_groups.csv")
10.再绘制总人群的基线特征并写出
tableone_overall <- CreateTableOne(vars = vars, #指定纳入的变量
data = mydata, #指定数据集
factorVars = factorvars) #指定分类变量
table1_overall <- print(x = tableone_overall, #指定表格
contDigits = 1, #连续变量保留1位小数
nonnormal = nonnormalvars, #必不可少
showAllLevels = FALSE,
noSpaces = TRUE, #删除用于对齐的空格
printToggle = FALSE) #不展示输出结果
write.csv(table1_overall, file="Table1_overall.csv")
11.把两个表格内容合并起来就完成了
最后的工作就是对输出的EXCEL表格进一步修饰了,我想大家就比较熟悉啦。