我将从闪亮生成的图表传递到rmarkdown以生成html报告。问题是wordcloud和饼图在rmarkdown文档的 params 中被接受。
问题:如何通过闪亮传递渲染的html中的wordcloud和饼图?
abc.Rmd
title: "Report using R Markdown"
subtitle: "ABC "
author: "Author name"
output:
prettydoc::html_pretty:
theme: architect
params:
wc : 'NULL'
table: 'NULL'
pie: 'NULL'
app.R (片断)
rmarkdown::render(input = "report.Rmd",
output_file = "report.html",
params = list(wc=getWordcloud(),
table=getTab(),
pie=getPie()))
注意:getWordcloud(),getTab(),getPie()函数在闪亮的app中完美地返回。
答案 0 :(得分:1)
您不能将参数类型作为函数。
参见参数类型: http://rmarkdown.rstudio.com/developer_parameterized_reports.html
支持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中访问您的函数(但它意味着函数的名称是固定的)