使用Quarto/R Markdown批量生成报告报错:object 'Name' not found
解决批量生成Quarto报告时的"object 'Name' not found"错误
问题根源
你的rmarkdown::render()调用存在参数传递错误:rmarkdown::pdf_document()未指定对应参数名,被错误当作第三个位置参数(该位置实际为output_dir),导致params参数未被渲染引擎正确识别,最终模板无法读取params$Name。
另外注意example_report.qmd中声明的输出格式是html,但你试图生成PDF文件,二者需要统一。
修正后的代码
Reference.qmd(修正版)
name <- c("abc", "def") for (i in name) { rmarkdown::render( input = "example_report.qmd", output_file = paste0("report_", i, "_", Sys.Date(), ".pdf"), output_format = rmarkdown::pdf_document(), # 明确指定output_format参数 params = list(Name = i) ) }
example_report.qmd(可选调整,统一输出格式)
若要确保模板默认支持PDF输出,可修改头部格式声明:
--- title: "Report for `r params$Name`" format: pdf # 改为pdf,与渲染目标一致 params: Name: "default Name" --- ## Quarto This is a report for `r params$Name`. This person is fabulous.
验证说明
修正后,render函数会正确接收params参数并传递给模板,params$Name可正常读取循环中的i值,批量生成对应名称的PDF报告。
内容的提问来源于stack exchange,提问作者Pss
相关产品推荐
相关产品推荐

