我喜欢DT
包的功能,它解决了我的大部分问题。与之前的相比,我注意到的一件事是使用DT::renderDataTable
时非常慢filter=top
。我知道它必须收集因子列和日期列的值,但没有达到目的。感觉就像我必须在这些附加功能与呈现页面的速度之间做出选择。
这是正常的还是有任何其他方法可以提高在使用带有 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 个级别的因子列转换为字符格式并改进了渲染。渲染时间从 40 t0 6 秒下降