【问题标题】:In R markdown, how to output sortable table while r chunk is set to results = 'asis'在 R markdown 中,如何在 r 块设置为 results = 'asis' 时输出可排序表
【发布时间】:2019-10-26 07:11:26
【问题描述】:

在 R markdown 中,我想在 r 块设置为 results='asis' 时输出一个可排序的表

DT::datatable 产生我正在寻找的所需类型的输出。但是,这似乎不适用于 results='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 块设置了 results='asis'。我正在设置它,因为我想在 for 循环中动态生成选项卡。我正在使用 print(kable...) 打印表格,但它们不可排序。一旦我编织了文件,有没有办法输出可排序的表格?谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-03-08
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2017-09-30
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      相关资源
      最近更新 更多