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

如何在metafor森林图的模型标签中换行显示统计量

解决metafor森林图模型标签多行缩进问题

直接修改mlabfun函数,通过换行符\n+空格缩进实现三行显示,同时调整森林图的文本对齐参数即可。以下是完整示例:

代码实现

library(metafor)

# 加载示例数据并拟合模型
dat <- dat.bcg
res <- rma(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat, measure="RR", slab=paste(author, year, sep=", "))

# 自定义mlabfun函数:生成带缩进的多行统计量标签
mlabfun <- function(text, x) {
  # 构造每行统计量,前面加4个空格实现缩进
  q_line <- paste0("    Q-test = ", round(x$QE, 2), ", df = ", x$k - x$p, ", p = ", round(x$pval, 3))
  i2_line <- paste0("    I² = ", round(x$I2, 1), "%")
  tau2_line <- paste0("    τ² = ", round(x$tau2, 3))
  # 组合主标题与三行统计量,用换行符分隔
  paste(text, "\n", q_line, "\n", i2_line, "\n", tau2_line, sep="")
}

# 绘制森林图,设置mlab.pos=4使标签右对齐,强化缩进效果
forest(res, mlab=mlabfun, mlab.pos=4)

关键说明

  1. 为什么atop()无效?
    atop()属于plotmath语法,而forest()的mlab参数默认输出普通文本,不会解析plotmath表达式,因此会直接显示为字符串而非多行格式。
  2. 缩进与对齐的调整:
    • 用4个空格(可自行增减)实现每行缩进;
    • mlab.pos=4设置模型标签整体右对齐,让缩进的统计量行相对于主标题更明显;若偏好左对齐,可改为mlab.pos=1,此时缩进为左侧留空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:35:07