美文网首页
R语言compareGroups包绘制分组患者基线信息表(初级)

R语言compareGroups包绘制分组患者基线信息表(初级)

作者: 灵活胖子的进步之路 | 来源:发表于2020-10-23 17:59 被阅读0次
    library(compareGroups)  # 加载包
    ## Warning: package 'compareGroups' was built under R version 3.6.3
    testdata<-read.csv2("seerdev.csv",header = T,sep = ",")#读取外部csv格式数据并将数据赋值给testdata
    
    testdata$age<-as.numeric(testdata$age)#把age变为数值型变量
    
    testdata$sex<-factor(testdata$sex,labels=c("male","female"))#把sex变量因子化
    
    str(testdata)#查看数据集结构
    ## 'data.frame':    286 obs. of  10 variables:
    ##  $ sex     : Factor w/ 2 levels "male","female": 1 1 1 1 1 1 1 1 1 1 ...
    ##  $ age     : num  51 60 60 51 35 48 72 67 58 63 ...
    ##  $ BMIteam : int  2 0 0 0 0 5 0 3 0 3 ...
    ##  $ diabetes: int  0 0 0 0 0 0 0 0 1 0 ...
    ##  $ heart   : int  0 0 0 0 0 1 0 0 0 0 ...
    ##  $ smoke   : int  0 1 0 1 0 1 0 1 0 1 ...
    ##  $ alchol  : int  0 1 0 1 0 1 0 1 0 1 ...
    ##  $ status  : int  0 0 1 0 0 0 1 1 1 0 ...
    ##  $ OS      : int  22 63 4 60 77 75 8 33 13 72 ...
    ##  $ team    : int  0 0 1 0 0 0 1 1 1 0 ...
    attach(testdata)#加载数据集,这样后续应用就方便了
    
    descrTable( ~ ., data = testdata)
    ## 
    ## --------Summary descriptives table ---------
    ## 
    ## __________________________ 
    ##               [ALL]     N  
    ##               N=286        
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ 
    ## sex:                   286 
    ##     male   237 (82.9%)     
    ##     female 49 (17.1%)      
    ## age        54.9 (10.2) 286 
    ## BMIteam    1.48 (1.41) 286 
    ## diabetes   0.16 (0.37) 286 
    ## heart      0.04 (0.19) 286 
    ## smoke      0.44 (0.50) 286 
    ## alchol     0.31 (0.46) 286 
    ## status     0.29 (0.45) 286 
    ## OS         29.9 (19.0) 286 
    ## team       0.40 (0.49) 286 
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
    #~ 的左边为分组变量或不填变量,不填变量则计算总研究人群的基线特征,并且不进行统计检验;
    #~ 的右边为基线特征表中需要统计分析的变量,如果没填变量仅出现一个.,则默认数据集的全部变量进行统计。
    descrTable(alchol ~ ., data = testdata)
    ## 
    ## --------Summary descriptives table by 'alchol'---------
    ## 
    ## ____________________________________________ 
    ##                 0           1      p.overall 
    ##               N=198       N=88               
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ 
    ## sex:                                <0.001   
    ##     male   150 (75.8%) 87 (98.9%)            
    ##     female 48 (24.2%)   1 (1.14%)            
    ## age        54.0 (11.1) 56.8 (7.52)   0.015   
    ## BMIteam    1.38 (1.39) 1.70 (1.43)   0.080   
    ## diabetes   0.15 (0.35) 0.19 (0.40)   0.344   
    ## heart      0.04 (0.19) 0.05 (0.21)   0.697   
    ## smoke      0.25 (0.43) 0.86 (0.35)  <0.001   
    ## status     0.31 (0.46) 0.25 (0.44)   0.309   
    ## OS         27.7 (18.3) 34.7 (19.7)   0.005   
    ## team       0.42 (0.49) 0.36 (0.48)   0.375   
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
    #alchol为分类变量,也是基线表的y变量,表示是否饮酒。
    descrTable(alchol ~ age + sex + smoke , data = testdata) 
    ## 
    ## --------Summary descriptives table by 'alchol'---------
    ## 
    ## ____________________________________________ 
    ##                 0           1      p.overall 
    ##               N=198       N=88               
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ 
    ## age        54.0 (11.1) 56.8 (7.52)   0.015   
    ## sex:                                <0.001   
    ##     male   150 (75.8%) 87 (98.9%)            
    ##     female 48 (24.2%)   1 (1.14%)            
    ## smoke      0.25 (0.43) 0.86 (0.35)  <0.001   
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
    # ~左边为分组变量,右边为基线表行变量
    descrTable(alchol ~ . -age - sex, data = testdata)  
    ## 
    ## --------Summary descriptives table by 'alchol'---------
    ## 
    ## __________________________________________ 
    ##               0           1      p.overall 
    ##             N=198       N=88               
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ 
    ## BMIteam  1.38 (1.39) 1.70 (1.43)   0.080   
    ## diabetes 0.15 (0.35) 0.19 (0.40)   0.344   
    ## heart    0.04 (0.19) 0.05 (0.21)   0.697   
    ## smoke    0.25 (0.43) 0.86 (0.35)  <0.001   
    ## status   0.31 (0.46) 0.25 (0.44)   0.309   
    ## OS       27.7 (18.3) 34.7 (19.7)   0.005   
    ## team     0.42 (0.49) 0.36 (0.48)   0.375   
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
    #如果基线表纳入的变量较多,也可以选择移除数据集中变量的形式来绘制基线特征表。可以通过-号的形式移除变量。
    descrTable(alchol ~ ., data = testdata,subset = age > 60)   
    ## 
    ## --------Summary descriptives table by 'alchol'---------
    ## 
    ## ____________________________________________ 
    ##                 0           1      p.overall 
    ##               N=60        N=27               
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ 
    ## sex:                                 0.019   
    ##     male   43 (71.7%)  26 (96.3%)            
    ##     female 17 (28.3%)   1 (3.70%)            
    ## age        66.9 (4.41) 65.6 (4.48)   0.211   
    ## BMIteam    1.48 (1.49) 1.37 (1.45)   0.740   
    ## diabetes   0.30 (0.46) 0.33 (0.48)   0.763   
    ## heart      0.12 (0.32) 0.00 (0.00)   0.007   
    ## smoke      0.25 (0.44) 0.93 (0.27)  <0.001   
    ## status     0.30 (0.46) 0.15 (0.36)   0.103   
    ## OS         28.2 (16.3) 33.5 (16.7)   0.171   
    ## team       0.30 (0.46) 0.19 (0.40)   0.240   
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
    #除了选择部分变量进行统计分析外,我们还可以选择亚组人群进行分析,比如说只选大于60的老年人分析。
    #可以从下表看到,里面只有大于60岁的老年人了
    descrTable(alchol ~ ., data = testdata, selec = list( sex == 0, age> 60))
    ## Warning in compare.i(X[, i], y = y, selec.i = selec[i], method.i = method[i], :
    ## Some levels of 'sex' are removed since no observation in that/those levels
    ## 
    ## --------Summary descriptives table by 'alchol'---------
    ## 
    ## __________________________________________ 
    ##               0           1      p.overall 
    ##             N=198       N=88               
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ 
    ## sex           .           .          .     
    ## age      66.9 (4.41) 65.6 (4.48)   0.211   
    ## BMIteam  1.38 (1.39) 1.70 (1.43)   0.080   
    ## diabetes 0.15 (0.35) 0.19 (0.40)   0.344   
    ## heart    0.04 (0.19) 0.05 (0.21)   0.697   
    ## smoke    0.25 (0.43) 0.86 (0.35)  <0.001   
    ## status   0.31 (0.46) 0.25 (0.44)   0.309   
    ## OS       27.7 (18.3) 34.7 (19.7)   0.005   
    ## team     0.42 (0.49) 0.36 (0.48)   0.375   
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
    #利用list函数还可以在亚组人群基础上选取特定变量进行研究。
    descrTable(alchol ~ ., data = testdata, method =c(age=2))
    ## 
    ## --------Summary descriptives table by 'alchol'---------
    ## 
    ## ______________________________________________________ 
    ##                   0                1         p.overall 
    ##                 N=198             N=88                 
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ 
    ## sex:                                          <0.001   
    ##     male     150 (75.8%)       87 (98.9%)              
    ##     female    48 (24.2%)       1 (1.14%)               
    ## age        54.0 [47.0;62.0] 57.0 [51.0;62.0]   0.063   
    ## BMIteam      1.38 (1.39)      1.70 (1.43)      0.080   
    ## diabetes     0.15 (0.35)      0.19 (0.40)      0.344   
    ## heart        0.04 (0.19)      0.05 (0.21)      0.697   
    ## smoke        0.25 (0.43)      0.86 (0.35)     <0.001   
    ## status       0.31 (0.46)      0.25 (0.44)      0.309   
    ## OS           27.7 (18.3)      34.7 (19.7)      0.005   
    ## team         0.42 (0.49)      0.36 (0.48)      0.375   
    ## ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
    #默认情况下,连续变量认为是正态分布变量,在生成基线特征表时,将使用均值+标准差描述连续变量。
    #如果要指定某一连续变量为非正态分布变量,比如说指定age为非正态分布变量,则method =c(age=2)
    #method中的数字:1表示正态分布;2表示连续非正态;3表示分类变量;NA表示执行Shapiro-Wilks检验来确定是正态还是非正态分布。
    #导出excel格式的表格
    excel.table<-descrTable(alchol ~ ., data = testdata, method =c(age=2))
    export2xls(excel.table, file='table1.xlsx')
    #导出word格式的表格
    export2word(excel.table, file='table1.docx')
    
    word格式的输出文件

    相关文章

      网友评论

          本文标题:R语言compareGroups包绘制分组患者基线信息表(初级)

          本文链接:https://www.haomeiwen.com/subject/ihzvmktx.html