如何在DT::datatable中使用服务器端处理?

问题描述 投票:0回答:2

我正在使用 DT::datatable() 来可视化 R markdown 文件中的表。

# R markdown file
library(DT)

```{r viewdata} 
# this is an example but my actual dataset has 10000 rows and 100 columns
var.df <- data.frame(x = rnorm(1:10000), y = rnorm(1:10000),...)
DT::datatable(data = var.df)
```

当我运行此代码时,我收到一条警告,并且生成的 HTML 加载速度非常慢:

DT::datatable(var.df)
Warning message:
In instance$preRenderHook(instance) :
  It seems your data is too big for client-side DataTables. You may consider server-side processing: http://rstudio.github.io/DT/server.html

我知道

server = TRUE/FALSE
中有一个
DT::renderDataTable()
选项,但我在
DT::datatable
中没有看到任何服务器选项。

如何使用

DT::datatable()
使用服务器端处理?

r r-markdown dt
2个回答
6
投票

警告消息显示:

对于客户端数据表来说,您的数据似乎太大了。您可以考虑服务器端处理:http://rstudio.github.io/DT/server.html

在文档网站上,它显示了一个 Shiny 示例,它使用

DT::renderDataTable()
。要使用服务器端处理模式,首先必须有一个“服务器”。
DT::datatable()
仅产生静态HTML小部件,其背后没有服务器。所有数据都存在于您的网络浏览器中并由您的网络浏览器处理。

Shiny 并不是 DT 唯一可能的服务器,但可能是最方便的服务器(除非您真正了解服务器端处理背后的技术细节)。要将 Shiny 与 R Markdown 一起使用,请参阅R Markdown 书的第 19 章。这是一个例子:

---
title: "The server-side processing mode for DT in R Markdown"
runtime: shiny
output: html_document
---


```{r}
DT::renderDT(ggplot2::diamonds)
```

0
投票

此函数将启动一个闪亮的服务器并显示数据表。

使用

DT::datatable
:

返回的对象来调用它
dtss <- function(dt) {
  ui <- shiny::fluidPage(
    shiny::titlePanel("Edgar Anderson's Iris Data"),
    DT::dataTableOutput("dt")
  )

  server <- function(input, output) {
    output$dt <- DT::renderDT({
      dt
    })
  }

  shiny::shinyApp(ui = ui, server = server)
}
© www.soinside.com 2019 - 2024. All rights reserved.