我正在使用命令 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 脚本中更改哪些内容才能通过调用 rmarkdown::render
来控制 school_lvl
的值?将 school_lvl
的值设置为“Elementary”或“Secondary”。
最佳答案
如果您想从 rmarkdown::render()
的 params
参数传递一些参数函数到 knitr
,有点复杂,因为 knitr::spin()
函数会覆盖参数。您可以在 R 脚本中指定带有空参数值的注释 header (如 documentation 中所示),例如测试.R
:
#' ---
#' params:
#' wanted_cyl: null
#' ---
library(tidyverse)
mtcars %>%
filter(cyl == params$wanted_cyl)
然后你可以调用:
rmarkdown::render(input = "test.R", params = list("wanted_cyl" = 6))
关于r - 使用 spin 渲染 R 脚本时如何传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62661828/