Is that possible to use ggplotly() or datatable() in RMarkdown from inside a for loop or function? Example:
--- title: "Using `ggplotly` and `DT` from a `for` loop in Rmarkdown" output: html_document --- ```{r setup, include=FALSE} library(ggplot2); library(DT) ``` ## Without `for` loop - works ```{r} datatable(cars) g <- ggplot(cars) + geom_histogram(aes_string(x=names(cars)[1] )) ggplotly(g) ``` ## From inside the `for` loop - does not work (nothing is printed) ```{r} for( col in 1:ncol(cars)) { datatable(cars) # <-- does not work print( datatable(cars) ) # <-- does not work either g <- ggplot(cars) + geom_histogram(aes_string(x=names(cars)[col] ) ) ggplotly (g) # <-- does not work print ( ggplotly (g) ) # <-- does not work either } ``` I wonder if this is because interactive outputs cannot be print-ed at all - by design.
No such problem existing when printing non-interactive outputs.
PS This is related to: Automating the generation of preformated text in Rmarkdown using R
Looping headers/sections in rmarkdown?
ggplotlyfrom insideforloop in.Rmdfile does not work). github.com/ropensci/plotly/issues/570 - Seems like it is still not resolved :(