在R降价促销中,如何在r块设置为results ='asis'的情况下输出可排序表

时间:2019-06-11 19:54:32

标签: r

在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 ...)打印表格,但它们无法排序。编织文件后,是否可以输出可排序表?谢谢!

1 个答案:

答案 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')
}

enter image description here