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

Rmarkdown中knitr::include_graphics无法找到项目文件求助

R Markdown路径引用报错的解决方法

1. 确认here()的项目根识别是否正确

  • 先在代码块里添加测试代码,查看here()实际指向的路径:
print(here())
print(here::dr_here())
  • 如果输出的根目录不是你的项目根,说明here包未正确识别项目(通常是因为项目目录缺少.Rproj、.here这类标识文件,或是当前R会话未关联到项目)。
  • 解决方式:重新通过项目的.Rproj文件打开RStudio,或是在项目根目录手动创建一个空的.here文件。

2. 检查是否存在局部工作目录设置覆盖全局

  • 虽然你全局开启了「在项目目录中评估代码块」,但单个Rmd文件可能存在局部配置冲掉全局设置。检查你的Rmd文件:
    • 是否在开头写了knitr::opts_knit$set(root.dir = "...")
    • YAML头中是否有类似knit: (function(input, ...) rmarkdown::render(input, root.dir = "..."))的配置
  • 解决方式:删除这些局部工作目录设置,让代码块继承全局的项目目录评估规则。

3. 验证文件实际路径是否匹配

  • 报错中的../../../relative/path/to/figure.png说明here()拼接后的路径与预期不符。可手动核对:
    • 项目根目录下是否存在relative/path/to/figure.png这个路径
    • 用file.exists(here("relative/path/to/figure.png"))测试文件是否存在,返回TRUE才符合预期

临时应急方案

如果以上方法均未解决,可暂时使用绝对路径替代(不推荐长期使用,不利于项目移植):

knitr::include_graphics("/absolute/path/to/your/project/relative/path/to/figure.png")

内容的提问来源于stack exchange,提问作者Daniel Estévez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:12:54