Faça um loop dinâmico através de htmlwidgets e adicione formatação knitr para o RMarkdown
Estou tentando criar dinamicamente e percorrerhtmlwidgets
tal comoDT
, plotly
ourbokeh
para gerar um relatório knitr automatizado. Existe uma maneira de adicionarknitr
formatação, como otabset
, notagList
abordagem descrita nesta pergunta do githubhttps://github.com/ramnathv/htmlwidgets/pull/110? Eu também postei essa pergunta lá.
Abaixo está um exemplo de código do que estou pensando, mas não funciona muito bem. O que estou tentando fazer é criar 10 guias, cada uma com uma cópia do gráfico gerado a partir deplot_list
. O que acontece agora é que todos os gráficos vão para a última guia. Na prática,plot_list
ter diferentes parcelas / tabelas.
#' ---
#' 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")
Antes, eu fazia com êxito algo assim com for-loops aninhados, mas uma vez que tentei usar figuras com dependências HTML, as figuras obviamente não renderizam, pois não são mais expressões de nível superior. É possível emknitr
fazer um loop assim?
Uma pergunta de acompanhamento que tenho é: suponha que eu queira aninhar essas guias em outro conjunto de guias criado da mesma maneira, isso é possível? O que quero perguntar é: posso aninhar guias dinamicamente usando um método como este, análogo a um loop for aninhado?
Ainda estou aprendendo a usarknitr
, e agradeceria qualquer ajuda! Obrigado!