使用旋转渲染 R 脚本时如何传递参数?

How to pass a parameter when rendering an R script with spin?

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

的调用来控制其值

我知道对于 RMarkdown 文件,我会在 YAML header 中指定一个参数。但是我如何为 .R 脚本执行此操作?我没有在 RMarkdown Cookbook.

这样的指南中看到它

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

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

我要在我的 .R 脚本中更改什么来控制 school_lvl 调用 rmarkdown::render 的值?将 school_lvl 的值设置为“Elementary”或“Secondary”。

如果你想从 rmarkdown::render() function to knitr, it's a bit complicated as the knitr::spin() function overrides parameters. You can specify a commented header in your R script (as seen in the documentationparams 参数中传递一些参数,参数值为空,例如test.R:

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

library(tidyverse)

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

那么您可以拨打:

rmarkdown::render(input = "test.R", params = list("wanted_cyl" = 6))