R Markdown 如何使参数可选

时间:2021-05-11 02:29:02

标签: r r-markdown

在使用 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

1 个答案:

答案 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)
相关问题