您不能将参数类型作为函数。
支持yaml::yaml.load函数可以解析的所有标准R类型,包括character,integer,numeric和logical。< / p>
我强烈建议找到一种方法使代码工作,而无需在参数中传递函数。也许你可以传递函数的选项并在rmd中包含函数?
但是,有办法绕过这个:
一种是在参数中使用函数的名称作为字符串,并使用eval()将字符串作为代码进行评估。
abc.Rmd 强>
title: "Report using R Markdown"
subtitle: "ABC "
author: "Author name"
output:
prettydoc::html_pretty:
theme: architect
params:
wc : wc_function
table: table_function
pie: pie_function
eval(paste0(param$wc_function, "(", my_options_as_string, ")"))
app.R(片断)强>
rmarkdown::render(input = "report.Rmd",
output_file = "report.html",
params = list(wc="getWordcloud",
table="getTab",
pie="getPie"))
另一个是另外一个带有函数的r脚本,在source的rmarkdown中调用。
这样,您可以将文件的路径作为参数传递,它允许您在rmarkdown中访问您的函数(但它意味着函数的名称是固定的)