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

相关推荐
xiaoshuaishuai83 小时前
C# 接入 OpenClaw
windows·visualstudio·c#
gihigo19989 小时前
嵌入式幼儿园刷卡系统 (C#实现)
c#
qq_454245039 小时前
通用引用管理框架
数据结构·架构·c#
aq55356009 小时前
三大编程语言深度对比:C# vs 易语言 vs 汇编
开发语言·汇编·c#
光泽雨9 小时前
c# 文件编译的过程
开发语言·c#
zxy28472253019 小时前
使用正运动的仿真软件C#
c#·仿真·运动控制·正运动·无硬件
三省持敬10 小时前
异步并发的“流量警察”:在C#中使用SemaphoreSlim进行并发控制的最佳实践
c#
唐青枫10 小时前
C#.NET IL 中间码 深入解析:从 C# 编译结果到 CLR 执行链路
c#·.net
xiaoshuaishuai812 小时前
C# 方言识别
开发语言·windows·c#
波波00713 小时前
写出稳定C#系统的关键:不可变性思想解析
开发语言·c#·wpf