【发布时间】:2016-05-03 15:43:23
【问题描述】:
我正在尝试动态创建和循环通过htmlwidgets(例如DT、plotly 或rbokeh)来生成自动编织报告。有没有办法将knitr 格式(例如tabset)添加到此github 问题https://github.com/ramnathv/htmlwidgets/pull/110 中概述的tagList 方法中?我也在那里发布了这个问题。
下面是我所想的一些示例代码,但它并不完全有效。我要做的是创建 10 个选项卡,每个选项卡都有一个从 plot_list 生成的图的副本。现在发生的是所有图都进入最后一个选项卡。在实践中,plot_list 会有不同的绘图/表格。
#' ---
#' title: htmltools::tagList test
#' output:
#' html_document
#' ---
#' # {.tabset}
#+ results='asis', echo=FALSE
library(plotly)
library(printr)
plot_list = lapply(1:10,
function(i){
as.widget(plot_ly(iris,
x = iris[["Sepal.Length"]],
y = iris[["Sepal.Width"]],
mode = "markers"))
}
)
htmltools::tagList( lapply(1:10,
function(i) {
pandoc.header(paste0("Tab",i,' {.tabset}'), 2)
plot_list[[i]]
}
)
)
# rmarkdown::render("your_path/htmltoolsTagList_test.r")
以前,我用嵌套的 for 循环成功地做了这样的事情,但是一旦我尝试使用带有 HTML 依赖项的图形,图形当然不会呈现,因为它们不再是顶级表达式。 knitr 可以这样循环吗?
我的后续问题是:假设我想将这些选项卡嵌套到以相同方式创建的另一组选项卡中,这可能吗?我的意思是,我可以使用这样的方法动态嵌套选项卡吗,类似于嵌套的 for 循环?
我仍在学习如何使用knitr,如果有任何帮助,我将不胜感激!
谢谢!
【问题讨论】:
-
我刚刚在 Github 问题上做了一点演示。让我知道它是否有帮助。谢谢。
标签: r knitr r-markdown htmlwidgets