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

求助:无法修改R语言meta包森林图左右侧标签

解决meta包森林图标签无法修改的问题

问题核心

使用R的meta包绘制森林图时,无法通过leftlabs/rightlabs修改左右侧标签,仅metagen中的studlab能改变研究名称;设置leftlabs=NULL也无法清除左侧默认显示的TE和SE[]列。

原因分析

meta::forest()函数对metagen生成的对象有默认列配置:

  • 左侧默认显示研究名、效应量(TE)、标准误(SE)三列,leftlabs参数的作用是添加额外左侧列,而非替换或隐藏默认列
  • 右侧默认显示效应量、95%CI列,rightlabs同样是添加额外右侧列,而非替换默认标签

解决方案

通过以下参数组合自定义森林图列和标签:

  1. 隐藏左侧默认的TE/SE列
    使用leftcols参数指定需要显示的左侧列,比如仅保留研究名:

    leftcols = c("studlab")
    

    或者用print.TE=FALSE和print.seTE=FALSE直接关闭这两列的显示。

  2. 自定义右侧标签
    用rightcols指定右侧要显示的列,再用rightlabs对应设置标签,两者长度需一致:

    rightcols = c("TE", "ci")  # 指定显示效应量和95%CI列
    rightlabs = c("Cohen's d", "95% CI")  # 对应设置自定义标签
    

修改后的完整森林图代码

meta::forest(meta_analysis,
             xlim = c(-3.5, 1),
             # 仅显示研究名列,移除默认的TE和SE列
             leftcols = c("studlab"),
             # 自定义右侧列及对应标签
             rightcols = c("TE", "ci"),
             rightlabs = c("Cohen's d", "95% CI"),
             col.diamond = "purple",
             col.diamond.lines = "purple",
             col.predict = "red",
             col.square = "black",
             col.square.lines = "black",
             col.inside = "black",
             col.by = "black",
             print.byvar = FALSE,
             print.tau2 = FALSE,
             backtransf = FALSE
)

额外说明

  • leftcols可选值包括:"studlab"(研究名)、"TE"(效应量)、"seTE"(标准误)、"weight"(权重)等,按需组合即可
  • 如果需要添加额外左侧列(比如样本量),可以在leftcols中加入对应列名,再用leftlabs设置列头,例如:
    leftcols = c("studlab", "n_A", "n_B"),
    leftlabs = c("研究", "干预组样本量", "对照组样本量")
    

内容的提问来源于stack exchange,提问作者erdin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:28