我想创建一个参数化的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
我确定了参数,我可以确认参数变量是预期的命名列表向量。我做错了什么?
答案 0 :(得分:1)
解决方案只是删除:
params:
param1:
etc.
在Rmd文件的标题中。此外,自从我传递的名单 render()是参数,可以将这些变量作为参数$ variable访问 在Rnotebook而不是params $变量。