R markdown knit生成PDF报无限递归错误 空文件失败是否需重装R
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Execution halted
该报错无需优先重装R,可按以下顺序排查配置问题:
排查步骤
1. 禁用R启动配置文件测试
- 空Rmd文件也触发报错,首先怀疑用户目录下的
.Rprofile或.Renviron配置文件存在递归调用逻辑,或是启动时自动加载的包存在冲突 - 临时禁用配置启动R:
- Windows:启动R时按住
Ctrl键,在弹出的提示中选择恢复到默认初始环境 - macOS/Linux:终端执行
R --no-init-file启动
- Windows:启动R时按住
- 启动后打开空Rmd文件执行knit操作,如果可以正常生成PDF,即可定位是配置文件问题,逐行注释
.Rprofile内的自定义内容排查冲突项即可,无需重装R
2. 重装核心依赖包
- 禁用配置后仍然报错,先重装knit相关的核心包:
remove.packages(c("evaluate", "knitr", "rmarkdown")) install.packages(c("evaluate", "knitr", "rmarkdown"))
- 执行完成后重启R,再次尝试knit
3. 重置expressions参数
- 执行
getOption("expressions")查看当前参数值,R默认值为5000,如果你之前手动调小过该参数,会触发递归深度不足报错,执行options(expressions = 5000)恢复默认值后重试
4. 重装R及RStudio
- 以上步骤全部验证失败后,再选择完全卸载R、RStudio,卸载时删除用户目录下所有R相关的配置文件夹,再重新安装官方最新版本
内容的提问来源于stack exchange,提问作者Choi Jae-hyoung
相关产品推荐
相关产品推荐

