R语言实现基线表格1期
今天给大家详细介绍一下R语言tableone包,可以用于实现流行病学关联性研究中的基线表格。
下面是这个包的一些参数
CreateTableOne(
vars, #代表要汇总的变量,需以向量的形式提供;因子变量即为分类变量,数值变量即为连续变量。如果为空,则使用数据集中的所有变量。
strata,#代表分组变量,如果不写,则不分组,只有总体结果
data,#你的数据集
factorVars,#填写“属于数值变量,但你想要它变为分类变量”的变量 1/2/3
includeNA = FALSE,#如果为“TRUE”,则考虑分类变量的缺失值
test = TRUE,#如果分组变量为多组,则进行两两比较
testApprox = chisq.test,
argsApprox = list(correct = TRUE),
testExact = fisher.test,
argsExact = list(workspace = 2 * 10^5),
testNormal = oneway.test,
argsNormal = list(var.equal = TRUE),
testNonNormal = kruskal.test,
argsNonNormal = list(NULL),
smd = TRUE, #如果为TRUE,则增加标准化均值差
addOverall = FALSE #如果为TRUE,则增加汇总列
)
#其他的参数就是一些统计方法的选择,保持默认即可。
.libPaths()
setwd("F:/论文/心血管高危影响因素/result")
getwd()
install.packages("tableone")
library(tableone)
library(dplyr)
data1<-read.csv("F:/论文/心血管高危影响因素/result/gw.csv",
as.is = TRUE,header = T,sep = ",", fileEncoding='utf-8')
## 将分类变量转换为因子变量
#fa1
varsToFactor <- c("性别", "年龄", "城乡", "文化程度")
data1[varsToFactor] <- lapply(data1[varsToFactor], factor)
#fa2:不仅可以将变量变为因子,还可以指定标签
data1<- rbind(data1)%>%##必须写上这个行行合并的函数
mutate(性别 = factor(性别,
levels = c("男性","女性"),
labels = c(1,2)
))%>%
mutate(年龄= factor(年龄,
levels = c("35~","45~","55~","65~76"),
labels = c(1,2,3,4)
))%>%
mutate(文化程度= factor(文化程度,
levels = c("小学及以下","初中","高中/中专","大专及以上","不详"),
labels = c(1,2,3,4,5)
))
## 汇总的变量
vars<-c(
"性别", "年龄", "城乡", "文化程度",
"TC","TG","LDL","HDL","SBP","DBP")
## 分组变量为两组的Table 1
tableOne <- CreateTableOne(vars = vars,
strata = c("心血管高危"),
includeNA=TRUE,
addOverall=TRUE,
data = data1)
tableOne
#summary可以查看详细总结,包括缺失情况
summary(tableOne)
#进一步指定非正态变量,
#也可以增加“exact = c("status", "stage")”指定需要精确检验的分类变量,必须在这里指定这个参数
table1<-print(tableOne, nonnormal = c("SBP","DBP"),#指定非正态变量
cramVars = "hepato",#用于显示二级分类变量的两个水平
smd = TRUE,#是否展示标准化均值差
quote = TRUE)
#导出excel
write.csv(table1, file = "table1.csv")
## ##################分组变量为多组的Table 1
tableOne <- CreateTableOne(vars = vars,
strata = c("心血管高危聚类"),#只需改变这里的分组变量
includeNA=TRUE,#考虑分类变量的缺失值
addOverall=TRUE,#增加合计列
test = TRUE,
data = data1)
#查看
tableOne
#summary可以查看详细总结,包括缺失情况
summary(tableOne)
#进一步指定非正态变量
table1<-print(tableOne, nonnormal = c("SBP","DBP"),#指定非正态变量
cramVars = "hepato",#用于显示二级分类变量的两个水平
smd = TRUE,#是否展示标准化均值差
quote = TRUE)
#导出excel;必须先用print()函数才能导出table1
table1<-print(tableOne)
write.csv(table1,file="table1.csv")
补充:
## 开始制作table1 汇总的变量
vars<-c(
"age", "gender", "smoke", "alc",
"htn","dyslipidemia","cvd","cancer","bmi","waist")
## 全人群的Table 1
tableone <- CreateTableOne(vars = vars,
strata = c("dm_pca_ses1"),#分组变量
includeNA=TRUE,#考虑分类变量的缺失值
addOverall=FALSE,#增加合计列
data = data)
#其他条件
all_table1<-print(tableone,
showAllLevels=TRUE,#显示所有变量的水平
#nonnormal = nonvar,#非正态变量
#exact = exactvars,#需要精确检验变量
catDigits = 1, #分类变量百分比小数位数为1位
contDigits = 1,#修改连续变量小数位数为1位
pDigits = 3, #调整P小数位数为3位
quote = FALSE, # 不显示引号
noSpaces = TRUE, # #删除用于对齐的空格
printToggle = TRUE) #展示输出结果