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

时间:2016-11-17 20:30:27

标签: r r-markdown dt

我正在使用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()

使用服务器端处理

1 个答案:

答案 0 :(得分:1)

警告消息如下:

  

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

在文档网站上,它显示了一个使用DT::renderDataTable()的Shiny示例。要使用服务器端处理模式,首先必须具有“服务器”。 DT::datatable()仅生成静态HTML小部件,并且其后没有服务器。所有数据都存在并由您的Web浏览器处理。

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

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


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