R语言实现基线表格1期

学术   2024-08-05 15:31   陕西  

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()#查看R包位置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')          


## 将分类变量转换为因子变量#fa1varsToFactor <- 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)

#导出excelwrite.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 1tableone <- 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) #展示输出结果

流病统计与科研学习笔记
流行病与卫生统计学专业主要分享基于SAS、R以及其他统计软件实现各种统计学方法和结果绘图,提高自己的学习能力
 最新文章