簡體   English   中英

使用旋轉渲染 R 腳本時如何傳遞參數?

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

我正在使用命令rmarkdown::render(input = "my_script.R")從 a.R 腳本創建 HTML output 腳本。 它調用knitr::spin()並成功生成 HTML output。 在 that.R 文件中,有一個過濾變量school_level我想通過調用來控制它的值render()

我知道對於 RMarkdown 文件,我會在 YAML header 中指定一個參數。 但是對於 a.R 腳本,我該怎么做呢? 我沒有在RMarkdown Cookbook之類的指南中看到它。

說我要在 my.R 腳本中修改的行是:

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

我在 my.R 腳本中進行哪些更改以控制從調用rmarkdown::renderschool_lvl的值? 使school_lvl的值為“小學”或“中學”。

如果你想將rmarkdown::render() function 的params參數中的一些參數傳遞給knitr ,這有點復雜,因為knitr::spin() function 會覆蓋參數。 您可以在 R 腳本中指定注釋的 header(如文檔中所示),參數值為空,例如test.R

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

library(tidyverse)

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

然后你可以調用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM