r - 按钮 : download button with scroller downloads only few rows

标签 r shiny dt

我正在处理超过 100 000 行的表,并使用 DT 包(开发版本 0.1.56)在 Shiny 应用程序中将其可视化。

此外,我使用 DT 扩展作为:按钮,以下载不同格式的数据。然而,虽然 Scroller 扩展也已激活,但我只能下载几行(不是所有数据)。

示例代码:

library("shiny")
library("DT")

shinyApp(
  ui = fluidPage(DT::dataTableOutput('tbl')),
  server = function(input, output) {
    output$tbl = DT::renderDataTable(
      iris,extensions=c("Buttons",'Scroller'),options = list(dom = 'Bfrtip',
                                               buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),scrollY = 50,
                                               scroller = TRUE
      ))
  }
)

此外,如果我在 R 中仅运行这部分代码并在查看器中获取数据表,我就能够复制等所有行,这怎么可能?

library("DT")
datatable(
  iris,
  extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )
)

我尝试过不同的方法:

  1. 在选项列表中更改 scrollY = ... -> 它正在工作,但 scrollY 的数量必须很大才能实际显示所有数据行所以它可以完全下载-->这不是一个好方法,因为我的数据来自数据库,我获得不同的行数,而且它使应用程序极其缓慢

  2. 使用 pageLength 选项:pageLength = ..., lengthMenu=c(..,..,..,..)

但是根本不显示可供选择的选项...

有什么想法可以解决这个问题吗?

  • 我知道 downloadHandler() 方法,但是我更愿意通过 DT 来实现可用的扩展提供了良好而优雅的方式,允许一次下载不同格式的数据,例如 pdf、excel、csv 和打印。

**我已经看到了同样的问题:

Download button downloads only 145 rows in DataTables with Scroller

但尚未回答DT包的含义

提前致谢

最佳答案

问题是,当server=TRUE时,只有显示的数据被发送到客户端。设置 server=FALSE 会在客户端中呈现所有 DT 内容,以便所有数据都在那里。

关于r - 按钮 : download button with scroller downloads only few rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38477345/

相关文章:

r - 绘图函数中波浪号的用途

r - 按条件过滤数据框,包括该条件之后的数据

r - 弹出模式内的 Shiny 模块化输入在关闭时不会被写入reactiveValues [flexdashboard/shinydashboard]

shiny - 如何使用 shinyjs 修改多个元素的类

javascript - 将选中的图标添加到 DT shiny 中的选定行

r - 如何使用R中的绘图功能更改散点图中x轴和y轴标签的字体大小和颜色?

r - R 中 7 个条的条形图中的纹理?

r - 是否可以从 Shiny 的应用程序创建用户定义的报告?

R Shiny DT::renderDataTable 被覆盖的 "Processing..."横幅卡住

使用不可见列的 R DT 条件格式