在R markdown中,我想在r块设置为results ='asis'时输出可排序的表
DT :: datatable产生所需的输出,我正在寻找。但是,这似乎与result ='asis'设置不兼容。我不确定此设置是否可以转义。
```{r setup, include=FALSE}
library(knitr)
my_data = mtcars
df_list = list()
df_list[[1]] = my_data[1:5,]
df_list[[2]] = my_data[6:10,]
### tabs {.tabset}
```{r, results='asis', echo = FALSE}
for (i in 1:length(df_list)){
cat("#### tab", i)
print(kable(df_list[[i]]))
cat('\n\n')
}
(*在上面的代码中,我不得不省略r个大块“`”的结尾,因为我不知道如何在此处正确显示它)
如您所见,第二个r块设置了result ='asis'。我设置它是因为我想在for循环中动态生成选项卡。我正在使用print(kable ...)打印表格,但它们无法排序。编织文件后,是否可以输出可排序表?谢谢!
答案 0 :(得分:0)
必须初始化 DT
渲染器,如 here 所示并更广泛地讨论 here:
---
title: "DT tabs"
output: html_document
---
```{r setup, include=FALSE}
library(knitr)
library(dplyr)
library(DT)
my_data = mtcars
df_list = list()
df_list[[1]] = my_data[1:5,]
df_list[[2]] = my_data[6:10,]
data.frame() %>%
DT::datatable() %>%
knitr::knit_print() %>%
attr('knit_meta') %>%
knitr::knit_meta_add() %>%
invisible()
```
### tabs {.tabset}
```{r, results='asis', echo = FALSE}
for (i in 1:length(df_list)){
cat("#### tab", i,'\n')
print(htmltools::tagList(DT::datatable(df_list[[i]])))
cat('\n\n')
}