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

绘制Meta分析森林图时出现“invalid input 'Guti”错误求助

Meta分析森林图绘制报错解决

问题重现

执行Meta分析森林图代码:

meta1.for = update(meta1, byvar=EV, studlab=paste(Author, Year))
forest(meta1.for)

出现报错:

Error in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  : invalid input 'Guti> 

尝试加载ggplot2、安装forestplot后问题依旧,且extrafont包未安装。

问题原因

报错里的invalid input 'Guti'指向作者姓名中包含非ASCII特殊字符(比如带重音的字母,如Gutiérrez里的é),R的grid绘图系统无法解析这类字符,导致森林图绘制失败。

解决步骤

  1. 清理特殊字符(核心解决方法)
    使用stringi包批量转换非ASCII字符为等效ASCII字符:

    # 安装并加载stringi包
    install.packages("stringi")
    library(stringi)
    
    # 转换数据框中Author列的特殊字符
    # 替换df为你的数据集名称
    df$Author <- stri_trans_general(df$Author, "Latin-ASCII")
    
    # 重新生成meta对象并绘制森林图
    meta1.for = update(meta1, byvar=EV, studlab=paste(Author, Year))
    forest(meta1.for)
    

    也可以手动修改Author列的特殊字符,比如把Gutiérrez改为Gutierrez。

  2. 正确安装并使用extrafont包
    如果确实需要调整字体,先完成安装和字体导入:

    install.packages("extrafont")
    library(extrafont)
    
    # 导入系统字体(仅首次运行需要,耗时较长)
    font_import()
    # 加载字体
    loadfonts()
    
  3. forestplot包适配
    若使用forestplot包绘制,同样需要先清理特殊字符,再执行绘图代码:

    library(forestplot)
    
    # 示例代码,需替换为你的实际数据列
    forestplot(labeltext = cbind(df$Author, df$Year),
               mean = df$effect_size,
               lower = df$ci_lower,
               upper = df$ci_upper)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:13:20