正如上所解释的这个网站 http://rmarkdown.rstudio.com/developer_parameterized_reports.html可以在 Rmarkdown 文件的 YAML 标头中定义参数,并且可以使用以下命令覆盖其中指定的默认值rmarkdown::render("foo.Rmd", params = list(param1 = "bar")
。但是,当我尝试这样做时,我收到以下错误:
params 对象已经存在于 knit 环境中,因此不能被渲染参数覆盖
这是一个最小的可复制 Rmd 文档。假设文件名是test.Rmd
.
---
title: "Test"
output: pdf_document
params:
name: Andreas
---
Hello, my name is `r params$name`.
当我现在尝试rmarkdown::render("test.Rmd", params = list(name = "Jordan")
它因上面写的错误而停止。
这是我的sessionInfo()
:
R version 3.2.1 (2015-06-18)
Platform: x86_64-apple-darwin14.4.0 (64-bit)
Running under: OS X 10.10.4 (Yosemite)
locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.11 rmarkdown_0.7.3
loaded via a namespace (and not attached):
[1] Rcpp_0.12.0 XML_3.98-1.3 digest_0.6.8 MASS_7.3-40 grid_3.2.1
[6] plyr_1.8.3 gtable_0.1.2 magrittr_1.5 scales_0.2.5 ggplot2_1.0.1
[11] stringi_0.5-5 reshape2_1.4.1 jwiDlst_0.1.1 proto_0.3-10 tools_3.2.1
[16] stringr_1.0.0 munsell_0.4.2 yaml_2.1.13 parallel_3.2.1 colorspace_1.2-6
[21] htmltools_0.2.6
谢谢你的帮助!
或者 - 通过包含选项在新环境中编织文档envir = new.env()
:
rmarkdown::render("test.Rmd", params = list(name = "Jordan"), envir = new.env() )
在任何情况下我都喜欢这样做,以确保 rmarkdown 报告仅使用明确定义为其自身代码一部分的对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)