基線表(Baseline Table)是醫學研究中常用的一種數據表格,用于在研究開始時呈現參與者的初始特征和狀態。這些特征通常包括人口統計學數據、健康狀況和疾病史、臨床指標、實驗室檢測、生活方式、社會經濟等。
本人在既往文章《scitb包1.6版本發布,一個為制作專業統計表格而生的R包》發布樂我自己編寫的scitb包,可以一鍵生成基線表,但是還是需要手動導入word,還是不是很方便,本期介紹怎么把基線表直接導入word。
首先咱們使用scitb包來生成一個基線表,先導入R包和數據,scitb包自帶有我既往的早產數據,咱們直接從包調用
library(scitb)
bc<-prematurity
這是一個關于早產低體重兒的數據,低于2500g被認為是低體重兒。數據解釋如下:low 是否是小于2500g早產低體重兒,age 母親的年齡,lwt 末次月經體重,race 種族,smoke 孕期抽煙,ptl 早產史(計數),ht 有高血壓病史,ui 子宮過敏,ftv 早孕時看醫生的次數,bwt 新生兒體重數值
如何生成基線表可以看我既往的文章,這里就直接上代碼了
假設咱們想race為研究目標,因為它是分類變量,咱們最好把它轉成因子,因為scitb包有一定對數據類型的判定能力,如果你的分類變量類別大于5個,而你不轉成因子的話,它可能自動判定為連續變量,處理方式不一樣的,所以這里最好自己設定一下
bc$race<-as.factor(bc$race)
接下來就是定義全部變量,分類變量和分層變量,這和tableone包一模一樣,如果你會使用tableone包,使用scitb包起來完全無壓力。
allVars <-c("age", "lwt", "smoke", "ptl", "ht", "ui", "ftv", "bwt")
fvars<-c("smoke","ht","ui")
strata<-"race"
一鍵生成統計結果
out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)
接下咱們需要把這個表格導入到word里面,需要安裝3個包,缺一不可,其實安裝flextable包的話也會附帶其他兩個包安裝
library(xtable)
library(flextable)
library(officer)
接下來咱們設置一下導出表格的位置
setwd("E:/公眾號文章2024年/R語言優雅的把基線表導出到word")
接下來把out轉成flextables格式
tb1<-as_flextable(xtable(out))
接下來咱們創建一個空的文檔,后面可以向它寫入數據
doc = read_docx()
咱們可以看到doc的路徑在,這個是officer包的默認位置
接下來咱們把剛才的tb1添加入空的doc就可以啦
doc = body_add_flextable(doc,tb1)
最后還需對生成的doc進行打印,然后在默認的位置下就可以看到word了
print(doc,"./tb1.docx")
咱們打開看一下,還不是還不是很滿意,刪除第一列
這樣就基本差不多啦
還可以按住表格根據內容自動調整,最后在修飾一下就好啦
將來在新版的scitb包將會添加這個一鍵導出到word的功能。