R语言优雅的把数据基线表(表一)导出到word

基线表(Baseline Table)是医学研究中常用的一种数据表格,用于在研究开始时呈现参与者的初始特征和状态。这些特征通常包括人口统计学数据、健康状况和疾病史、临床指标、实验室检测、生活方式、社会经济等。

本人在既往文章《scitb包1.6版本发布,一个为制作专业统计表格而生的R包》发布乐我自己编写的scitb包,可以一键生成基线表,但是还是需要手动导入word,还是不是很方便,本期介绍怎么把基线表直接导入word。

首先咱们使用scitb包来生成一个基线表,先导入R包和数据,scitb包自带有我既往的早产数据,咱们直接从包调用

r 复制代码
library(scitb)
bc<-prematurity

这是一个关于早产低体重儿的数据,低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产低体重儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数,bwt 新生儿体重数值

如何生成基线表可以看我既往的文章,这里就直接上代码了

假设咱们想race为研究目标,因为它是分类变量,咱们最好把它转成因子,因为scitb包有一定对数据类型的判定能力,如果你的分类变量类别大于5个,而你不转成因子的话,它可能自动判定为连续变量,处理方式不一样的,所以这里最好自己设定一下

r 复制代码
bc$race<-as.factor(bc$race)

接下来就是定义全部变量,分类变量和分层变量,这和tableone包一模一样,如果你会使用tableone包,使用scitb包起来完全无压力。

r 复制代码
allVars <-c("age", "lwt",  "smoke", "ptl", "ht", "ui", "ftv", "bwt")
fvars<-c("smoke","ht","ui")
strata<-"race"

一键生成统计结果

r 复制代码
out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)

接下咱们需要把这个表格导入到word里面,需要安装3个包,缺一不可,其实安装flextable包的话也会附带其他两个包安装

r 复制代码
library(xtable)
library(flextable)
library(officer)

接下来咱们设置一下导出表格的位置

r 复制代码
setwd("E:/公众号文章2024年/R语言优雅的把基线表导出到word")

接下来把out转成flextables格式

r 复制代码
tb1<-as_flextable(xtable(out))

接下来咱们创建一个空的文档,后面可以向它写入数据

r 复制代码
doc = read_docx()

咱们可以看到doc的路径在,这个是officer包的默认位置

接下来咱们把刚才的tb1添加入空的doc就可以啦

r 复制代码
doc = body_add_flextable(doc,tb1)

最后还需对生成的doc进行打印,然后在默认的位置下就可以看到word了

r 复制代码
print(doc,"./tb1.docx")

咱们打开看一下,还不是还不是很满意,删除第一列

这样就基本差不多啦

还可以按住表格根据内容自动调整,最后在修饰一下就好啦

将来在新版的scitb包将会添加这个一键导出到word的功能。

R语言优雅的把基线表导出到word

相关推荐
空中湖5 分钟前
文档极速转换器 - 免费批量Word转PDF工具
pdf·word
开开心心就好2 小时前
高效Excel合并拆分软件
开发语言·javascript·c#·ocr·排序算法·excel·最小二乘法
一名用户4 小时前
unity实现自定义粒子系统
c#·unity3d·游戏开发
钢铁男儿6 小时前
C# 类和继承(扩展方法)
java·servlet·c#
爱炸薯条的小朋友6 小时前
C#由于获取WPF窗口名称造成的异常报错问题
windows·c#·wpf
Rose 使者8 小时前
全球IP归属地查询接口如何用C#进行调用?
c#·api·ip地址
东方佑9 小时前
使用 Python 自动化 Word 文档样式复制与内容生成
python·自动化·word
~plus~10 小时前
Harmony核心:动态方法修补与.NET游戏Mod开发
开发语言·jvm·经验分享·后端·程序人生·c#
htj1010 小时前
C# 使用正则表达式
正则表达式·c#
~plus~10 小时前
WPF八大法则:告别模态窗口卡顿
开发语言·经验分享·后端·程序人生·c#