如何用qwraps2包合并均值±标准差与均值置信区间输出?
使用qwraps2生成指定格式的统计表格
步骤1:加载包与导入数据
首先加载所需工具包,导入你的数据集:
library(qwraps2) library(dplyr) library(stringr) # 设置qwraps2输出Markdown格式 options(qwraps2_markup = "markdown") # 导入数据集 df <- structure(list(PREOP_mTFA = c(163.5, 164.9, 168.7, 170.3, 162.8, 166.7, 171, 165.9, 165.9, 170.8, 170.5, 173.3, 167.7, 170.7, 159, 170.9, 168.2, 171.2, 164, 166.6, 169.1, 171.2, 175.9), PREOP_mLDFA = c(86, 95, 90, 86, 92, 89, 92, 96, 90, 86, 89, 87, 93, 90, 98, 89, 90, 88, 92, 91, 89, 90, 88)), class = c("tbl_df", "tbl", "data.frame" ), row.names = c(NA, -23L))
步骤2:自定义统计格式函数
写一个函数直接生成「均值±标准差 [下限置信区间, 上限置信区间]」的格式,避免均值重复:
mean_sd_ci <- function(x, digits = 2) { # 计算均值±标准差 ms_result <- mean_sd(x, digits = digits, show_n = FALSE) # 拆分均值和标准差 mean_part <- str_extract(ms_result, "^\\d+\\.\\d+") sd_part <- str_extract(ms_result, "(?<=±)\\d+\\.\\d+") # 计算置信区间并提取数值部分 ci_result <- mean_ci(x, digits = digits, show_n = FALSE) ci_part <- str_remove_all(ci_result, "\\(|\\)") # 拼接成目标格式 paste0(mean_part, "±", sd_part, " [", ci_part, "]") }
步骤3:定义表格规范并生成统计表格
指定统计变量的展示名称,生成最终表格:
# 定义表格结构 table_spec <- list( "术前胫骨股骨角(PREOP_mTFA)" = list( "统计结果" = ~mean_sd_ci(PREOP_mTFA) ), "术前外侧远端股骨角(PREOP_mLDFA)" = list( "统计结果" = ~mean_sd_ci(PREOP_mLDFA) ) ) # 生成表格 result_table <- summary_table(df, table_spec)
最终输出效果
在R Markdown中直接打印result_table,会得到如下美观的Markdown表格:
| 统计结果 | |
|---|---|
| 术前胫骨股骨角(PREOP_mTFA) | 168.47±4.37 [166.60, 170.34] |
| 术前外侧远端股骨角(PREOP_mLDFA) | 90.30±3.52 [88.83, 91.77] |
内容的提问来源于stack exchange,提问作者Ahmed Mabrouk
相关产品推荐
相关产品推荐

