本来不想再写这个教程了,因为前面已经写过很多了,也说过R包TableOne。但是这个R包真是太牛了,可以很轻松的制作出SCI论文表一(基线资料表)和表二(单因素分析表),也能轻松做出sci论文中多个模型比较的表三(多因素分析表),还可以做出线性趋势(P for trend),可以毫不夸张的说,使用好这个R包,你可以写一篇简单的SCI论文了,下面的表格都可以通过compareGroups包轻松制作出来。

R语言java成绩论文 r语言 写论文_大数据


R语言java成绩论文 r语言 写论文_bc_02


R语言java成绩论文 r语言 写论文_大数据_03


这种表也是可以做出来的,也不难

R语言java成绩论文 r语言 写论文_正态分布_04


R语言java成绩论文 r语言 写论文_R语言java成绩论文_05


R语言java成绩论文 r语言 写论文_正态分布_06


好的。废话不多说,马上开工。

我们除了需要compareGroups包外还需要导入一个glue包,不然就会报错。

我们还是使用既往的乳腺癌数据,先导入R包和查看数据

library(foreign)
library(compareGroups)
library(glue)
bc <- read.spss("E:/r/test/Breast cancer survival agec.sav",
                use.value.labels=F, to.data.frame=T)
bc <- na.omit(bc)
head(bc)

R语言java成绩论文 r语言 写论文_bc_07


把分类变量转换成因子

####转换为因子
bc$age1 <- factor(bc$age1)
bc$lnpos <- factor(bc$lnpos)
bc$histgrad <- factor(bc$histgrad)
bc$er<- factor(bc$er)
bc$pr <- factor(bc$pr)
bc$status<- factor(bc$status)
bc$pathscat<- factor(bc$pathscat)
bc$ln_yesno<- factor(bc$ln_yesno)

先看总体人群变量分布

descrTable( ~ ., data = bc)

R语言java成绩论文 r语言 写论文_大数据_08


按病例组织学分组,用histgrad表示

descrTable( histgrad~ ., data = bc)####.符号代表包括其他的变量

R语言java成绩论文 r语言 写论文_大数据_09


好像还不错把,继续。假如不想要agec这个变量

descrTable( histgrad~age+pathsize+er+status+pathscat+ln_yesno+ time, data = bc)

R语言java成绩论文 r语言 写论文_大数据_10


假如某个变量如:pathsize是非正态分布的,可以进行指定

descrTable( histgrad~age+pathsize+er+status+pathscat+ln_yesno+ time, data = bc,method = c
            (pathsize=2))##用中位数表示

R语言java成绩论文 r语言 写论文_自动检验_11


也可以自动检验是否正态分布

descrTable( histgrad~age+pathsize+er+status+pathscat+ln_yesno+ time, 
            data = bc,method = c(pathsize=NA))##自动检验是否正态分布

R语言java成绩论文 r语言 写论文_大数据_12


分组为二分类变量时可以比较重要的OR或HR值,现在以是否淋巴结肿大分组

descrTable( ln_yesno~age+pathsize+er+status+pathscat+histgrad+ time, 
            data = bc, ref= 1,show.ratio=T)##参考水平为1

R语言java成绩论文 r语言 写论文_自动检验_13


也可以更改某组的参考水平

descrTable( ln_yesno~age+pathsize+er+status+pathscat+histgrad+ time, 
            data = bc, ref= c(pathscat=2),show.ratio=T)##更改参考水平为

R语言java成绩论文 r语言 写论文_R语言java成绩论文_14


更改连续变量每个P-SD,加入我想看年龄每增加10岁的改变

descrTable( ln_yesno~age+pathsize+er+status+pathscat+histgrad+ time, 
            data = bc, ref= 1,show.ratio=T,fact.ratio = 10)##参考水平为1,更改连续变量每个P-SD

R语言java成绩论文 r语言 写论文_正态分布_15


调整小数点显示位数

descrTable( ln_yesno~age+pathsize+er+status+pathscat+histgrad+ time, 
            data = bc, ref= 1,show.ratio=T,digits = 3)##参考水平为1,调整小数点显示位数

R语言java成绩论文 r语言 写论文_大数据_16


最后再来个大招加入分层变量

tab<-descrTable( ln_yesno~age+pathsize+status+pathscat+histgrad+ time, 
            data = bc)
be<-strataTable(tab, "er")
be

R语言java成绩论文 r语言 写论文_R语言java成绩论文_17


导出数据

export2csv(tab,file = "tab.csv")
export2word(tab, file='table1.docx')

如图

R语言java成绩论文 r语言 写论文_R语言java成绩论文_18


稍微修改一下就可以发表了

参考文献:

  1. compareGroups包说明手册