R/DT慢

R/DT慢,r,shiny,dt,R,Shiny,Dt,我喜欢DTpackage的特性,它解决了我的大部分问题。与前一个相比,我注意到DT::renderDataTable使用filter=top时速度非常慢。我知道它必须收集factor列和date列的值,但这不符合目的。感觉上,我必须在这些附加功能和呈现页面的速度之间做出选择 这是正常的,还是在使用filter=top的DT时有其他方法可以提高页面的呈现速度 注意:我在32列350k行数据表上使用了这个 以下是rb的结构: Classes ‘data.table’ and 'data.frame'

我喜欢
DT
package的特性,它解决了我的大部分问题。与前一个相比,我注意到
DT::renderDataTable
使用
filter=top
时速度非常慢。我知道它必须收集factor列和date列的值,但这不符合目的。感觉上,我必须在这些附加功能和呈现页面的速度之间做出选择

这是正常的,还是在使用filter=top的DT时有其他方法可以提高页面的呈现速度

注意:我在32列350k行数据表上使用了这个

以下是rb的结构:

Classes ‘data.table’ and 'data.frame':  357574 obs. of  32 variables:
  $ 1col : chr  "00000001175" "00001050760" "00002020102" "00002050202" ...
  $ 2col : Factor w/ 6 levels 
  $ 3col : Factor w/ 22116 levels 
  $ 4col : Factor w/ 4 levels 
  $ 5col : Factor w/ 22 levels 
  $ 6col : Factor w/ 11 levels 
  $ 7col : Factor w/ 2 levels 
  $ 8col : Factor w/ 7 levels 
  $ 9col : Factor w/ 2 levels 
  $ 10col: Factor w/ 2 levels 
  $ 11col: Factor w/ 114 levels 
  $ 12col: Factor w/ 2 levels 
  $ 13col: Factor w/ 258 levels 
  $ 14col: Factor w/ 27 levels 
  $ 15col: Factor w/ 32 levels 
  $ 16col: Factor w/ 314 levels 
  $ 17col: Factor w/ 2751 levels 
  $ 18col: Factor w/ 7 levels 
  $ 19col: Factor w/ 3952 levels 
  $ 20col: Factor w/ 4 levels 
  $ 21col: Factor w/ 5389 levels 
  $ 22col: Factor w/ 11 levels 
  $ 23col: Factor w/ 27 levels 
  $ 24col: Factor w/ 22 levels 
  $ 25col: Factor w/ 2491 levels 
  $ 26col: Factor w/ 113 levels 
  $ 27col: Factor w/ 258 levels 
  $ 28col: Factor w/ 32 levels
  $ 29col: Factor w/ 6 levels 
  $ 30col: chr  "ABC" "CDE" 
  $ 31col: Factor w/ 2679 levels 
  $ 32col: Factor w/ 8333 levels 

作为一个测试,我将上面任何超过100个级别的factor列转换为字符格式,从而改善了渲染效果。渲染时间从40秒减少到6秒

最初渲染表的速度慢,还是在与表交互时,表的响应速度慢?速度有多慢?如果没有
filter=top
渲染表格需要1秒,而使用
filter=top
大约需要40秒。您提供了一个可复制的示例吗?我看不出这个例子有多慢:
d=as.data.frame(矩阵(rnorm(32*350000),ncol=32));图书馆(闪亮);图书馆(DT);shinyApp(ui=fluidPage(dataTableOutput('foo')),server=function(input,output){output$foo=renderDataTable(d,filter='top')})
以下是我在server.R文件中使用的语句:
output$table1请发布一个最小、自包含且可复制的示例(就像我在前面的评论中所做的那样),而不是片段(您可以编辑您的文章以包含示例)。因为我不知道什么是
rb,所以我无法重现您的问题。