2

我正在使用命令从 .R 脚本创建 HTML 输出rmarkdown::render(input = "my_script.R")。它调用knitr::spin()并成功生成 HTML 输出。在那个 .R 文件中,有一个过滤变量school_level,我想通过调用来控制它的值render()

我知道对于 RMarkdown 文件,我会在 YAML 标头中指定一个参数。但是我如何为 .R 脚本做到这一点?我没有在RMarkdown Cookbook之类的指南中看到它。

假设我要在 .R 脚本中修改的行是:

good_data <- my_data %>%
  filter(level == school_lvl)

我应该在我的 .R 脚本中更改什么来控制school_lvl从调用到的值rmarkdown::render?使值school_lvl成为“小学”或“中学”。

4

1 回答 1

2

如果你想将一些参数从函数的params参数传递rmarkdown::render()knitr,这有点复杂,因为knitr::spin()函数会覆盖参数。您可以在 R 脚本中指定一个带注释的标头(如文档中所示),参数值为空,例如test.R

#' ---
#' params:
#'   wanted_cyl: null
#' ---

library(tidyverse)

mtcars %>%
 filter(cyl == params$wanted_cyl)

然后你可以调用:

rmarkdown::render(input = "test.R", params = list("wanted_cyl" = 6))
于 2020-06-30T17:19:52.253 回答