将多个参数传递给渲染函数以编织html?

时间:2018-04-24 16:23:46

标签: r yaml r-markdown knitr

我想创建一个参数化的Rmd文档,用户将在列表中输入 下面这些参数并运行render()函数来编织文档。 这是我的.Rmd文件:

title: "DanceWize NSW report"
output: "html_pretty"
params:
    bump_in_date:"09-03-2018"
    bump_out_date:"10-03-2018"
    input_file:"ClientFiles/input_data.csv"
    operating_hours:"15:00-23:15"
    volunteers:"10"
    staff:"1 staff–DanceWize NSW Coordinator (Dan)"

这是我的渲染函数,带有参数声明(单独的R脚本)。

bump_in_date = "09-03-2018"
bump_out_date = "10-03-2018"
input_file = "ClientFiles/input_data.csv"
operating_hours = "15:00-23:15"
volunteers = "10"
staff = "1 staff–DanceWize NSW Coordinator (Dan)"

parameters = list(bump_in_date = bump_in_date,
              bump_out_date = bump_out_date,
              input_file = input_file,
              operating_hours = operating_hours,
              volunteers = volunteers,
              staff = staff
)

render("ReportInitial.Rmd", output_format = prettydoc::html_pretty(theme = "leonids"), output_file = "Report.html", encoding = "UTF-8", clean = TRUE, params = list())

如果我发送一个空列表,编织成功,但如果我把

params = parameters

在渲染功能中,我收到以下错误:

Error in knit_params_get(input_lines, params) :
  render params not declared in YAML: bump_in_date
Calls: render -> knit_params_get

我确定了参数,我可以确认参数变量是预期的命名列表向量。我做错了什么?

1 个答案:

答案 0 :(得分:1)

解决方案只是删除:

params:
      param1:
      etc.

在Rmd文件的标题中。此外,自从我传递的名单 render()是参数,可以将这些变量作为参数$ variable访问 在Rnotebook而不是params $变量。