You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用forestploter绘制含4个并列处理组的森林图?

解决方案:用forestploter实现4个处理组并排的森林图

以下是修改后的完整代码,可直接运行生成4列处理组的森林图:

# 安装并加载包
install.packages("forestploter")
library(forestploter)

# 读取示例数据
dt <- read.csv(system.file("extdata", "example_data.csv", package = "forestploter"))

# 子组缩进处理
dt$Subgroup <- ifelse(is.na(dt$Placebo), 
                      dt$Subgroup,
                      paste0("   ", dt$Subgroup))

# NA值替换为空白
dt$`n` <- ifelse(is.na(dt$Treatment), "", dt$Treatment)
dt$`n ` <- ifelse(is.na(dt$Placebo), "", dt$Placebo)

# 关键修改1:添加4个空白列,对应4个处理组的CI展示
dt$`Trt 1 Outcome` <- paste(rep(" ", 20), collapse = " ")
dt$`Trt 2 Outcome` <- paste(rep(" ", 20), collapse = " ")
dt$`Trt 3 Outcome` <- paste(rep(" ", 20), collapse = " ")
dt$`Trt 4 Outcome` <- paste(rep(" ", 20), collapse = " ")

# 关键修改2:更新主题,适配4个处理组
tm <- forest_theme(base_size = 10,
                   refline_lty = "solid",
                   ci_pch = c(15, 18, 17, 19),  # 4种不同的点形状
                   ci_col = c("#377eb8", "#4daf4a", "#984ea3", "#ff7f00"),  # 4种不同颜色
                   footnote_col = "blue",
                   legend_name = "Group",
                   legend_value = c("Trt 1", "Trt 2", "Trt 3", "Trt 4"),  # 4个组的名称
                   vertline_lty = c("dashed", "dotted"),
                   vertline_col = c("#d6604d", "#bababa"))

# 关键修改3:调整列选择和ci_column参数,指定4个CI列的位置
p <- forest(dt[,c(1, 19, 20, 21, 22, 23)],  # 包含Subgroup、n、4个CI列、n 
            est = list(dt$est_gp1,
                       dt$est_gp2,
                       dt$est_gp3,
                       dt$est_gp4),
            lower = list(dt$low_gp1,
                         dt$low_gp2,
                         dt$low_gp3,
                         dt$low_gp4), 
            upper = list(dt$hi_gp1,
                         dt$hi_gp2,
                         dt$hi_gp3,
                         dt$hi_gp4),
            ci_column = c(3,4,5,6),  # 指定4个CI列的索引位置
            ref_line = 1,
            vert_line = c(0.5, 2),
            nudge_y = 0.2,
            theme = tm)

# 生成图形
plot(p)

关键修改说明:

  • 添加4个空白列:原代码仅添加2个CI展示列,现在新增为4个,每个列对应一个处理组的置信区间。
  • 主题适配4组:调整ci_pch(点形状)、ci_col(点颜色)、legend_value(图例名称)为4个元素,确保每个处理组有独特视觉标识。
  • 指定CI列位置:ci_column参数从c(3,5)修改为c(3,4,5,6),对应新增的4个空白列位置,让每个处理组的CI匹配到正确列。
  • 列选择调整:在dt[,c(1,19,20,21,22,23)]中包含4个CI列,确保森林图列布局正确。

内容的提问来源于stack exchange,提问作者Ahir Bhairav Orai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:45:11