在使用 knitr 时,有没有办法在 R Markdown 中使参数可选?下面是一个独立的例子,我简单地尝试省略一个参数,以及错误。
示例 RMD 文件:
---
title: "`r params$name`"
date: \`r format(Sys.Date(), "%B %d, %Y")`\
output:
html_document:
toc: true
params:
name: NA
A: NA
B: NA
C: NA
---
# Header-1
`r params$A`
`r params$B`
```{r, echo=FALSE, out.width="50%"}
knitr::include_graphics(params$C)
```
示例运行脚本:
render(input = "mytemplate.Rmd",
output_file = "fileout.html",
params = list(
name = 'Bob',
A = 'turkey',
B = 'otter'
)
)
省略“C”时产生的错误:
Error in knitr::include_graphics(params$C) :
Cannot find the file(s): NA
答案 0 :(得分:1)
不在 C
中传递 params
值对我来说很好。它在 HTML 输出中打印默认值 (NA
)。我收到一个错误,因为 name
未声明。使用以下作品 -
---
title: "`r params$name`"
date: \`r format(Sys.Date(), "%B %d, %Y")`\
output:
html_document:
toc: true
params:
A: NA
B: NA
C: NA
name: NA
---
# Header-1
`r params$A`
`r params$B`
`r params$C`
并用
调用它rmarkdown::render(input = "mytemplate.Rmd",
output_file = "fileout.html",
params = list(
name = 'Bob',
A = 'turkey',
B = 'otter'
)
)
对于更新的问题,您可以添加一个 if
条件:
`r params$A`
`r params$B`
```{r, echo=FALSE, out.width="50%"}
if(params$C != 'NA') knitr::include_graphics(params$C)