手把手教你用R语言快速制作出SCI中的表一

SCI里常见这样的表格一,表明人群基线资料,通常都是分段表示,可这样的表格是怎么做出来的呢?
在这里插入图片描述
在既往SPSS教程中,我们已经教大家使用SPSS对变量进行分组转换做出SCI表一,但是使用SPSS需要对每个变量单独进行计算,然后手动输入制表,在变量比较多的,数据比较大的文件比较麻烦,今天我们来使用R语言轻松做出SCI中的表一
首先打开我们的数据,是一个炎症因子和肺炎发生相关的数据, fy为是否肺炎,age为年龄,tj为痰液检查,sex为性别,其他是炎症指标。我们打算用性别做分组列出基线资料
在这里插入图片描述
需要用到foreign、tableone这两个R包,必须事先下载好,我们先把R包和数据导入

library(tableone)
library(foreign)
bc <- read.spss("E:/r/test/sci1.sav",#生成了bc这个数据
                use.value.labels=F, to.data.frame=T)

在这里插入图片描述
先把数据生成表格并且输出看一看(这一步其实不做也可以)

tab1 <- CreateTableOne(data = bc)
print(tab1)

在这里插入图片描述
目前数据还是以连续变量表示(均值加减标准差),没有区分出分类变量
我们需要汇总所有变量及定义分类变量

dput(names(bc))#把bc数据集所有变量导出,这样省去打字的麻烦
allVars <-c("TNF", "IL6", "sTREM1", "PCT", "fy", "xs", "tj", "sex")#所有变量定义为allVars
fvars<-c("tj", "sex","fy")#分类变量定义为fvars

在这里插入图片描述
建立表格2,strata表示使用什么变量进行分类显示,我们这里使用sex, 如果是连续变量的话要预先进行分组,也可以事先用SPSS分好,factorVars这里填入分类变量,addOverall表示加入汇总信息

tab2 <- CreateTableOne(vars = allVars, strata = "sex" , data = bc, factorVars=fvars,
                       addOverall = TRUE )
print(tab2)#输出表格

在这里插入图片描述
含有SCI的表一就这样轻松做出来了,我们稍加修改就可以用于发表了。
但是有些同学可能会问,这里的都是正态分布的数据,如果我的数据是如果我的是非正态的整么办?
我们这里假设:TNF是非正态的连续数据,分类变量都是非正态的

bb<- c("TNF")#我们先给他标记一下,bb是非正态的
##使用nonnormal来指定谁是非正态数据 exact定义分类变量
tab3<- print(tab2, nonnormal=bb, exact = fvars, quote = FALSE, 
             noSpaces = T, printToggle = F, showAllLevels = T)
tab3

在这里插入图片描述
在这里插入图片描述
最后把文件输出,并打开表格

write.csv(tab3, file = "1.csv")

在这里插入图片描述
把表格拷贝入word
在这里插入图片描述
最后把表格进行美化一下
在这里插入图片描述
这样,可以用于发表的SCI表一就做出来啦,完美,收工
动动小手关注一下吧,更多精彩文章尽在零基础说科研
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值