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) )