Rmd上でhtmlwidget系パッケージを用いて複数出力する
Rmarkdown上でhtmlwidget系のパッケージを用いて出力する際、以下のようにforループを回して複数の出力を実現しようとするとうまくいかない。
```{r}
library(dplyr)
for(s in unique(iris$Species)){
tmp <- iris %>% filter(Species == s)
datatable(tmp)
}
```
そんなときはlapply()とhtmltoolsパッケージのtagList()を組み合わせると良い。
```{r}
library(DT)
htmltools::tagList(
lapply(split(iris, iris[, 5]), datatable)
)
```
https://github.com/rstudio/DT/issues/67
ここにmanipulateWidgetパッケージを組み合わせて、各出力のレイアウト(上記例の場合は表の並べ方)も調整できると良いのだがうまくいかない。
コメントいただきました
たとえば2列に並べたいときは以下のようにすると良いとのことです。
kazutanさんありがとうございます!!!!!!!!!
library(DT) manipulateWidget::combineWidgets( ncol = 2, list = lapply(split(iris, iris[, 5]), datatable) )