数据表(DT)闪亮R-选择所有找到的行

Mal*_*l_a 5 r datatables shiny

我有一个关于在Shiny中使用的数据表(DT)的问题。我有相当大的数据(> 5000000行),并使用带有过滤器的数据表(DT)在闪亮的应用程序中显示它。根据用户对过滤的偏好,让我们假设它可以给我们550行(但可以给我们更多或更少的行)。由于分页,我无法看到所有550行(假设pageLength为100),甚至更糟的是,由于函数input$tabelle_rows_all使用当前页面上的行,因此我无法在绘图中进一步显示所有过滤的行(我必须首先更改条目号)。有什么方法可以在过滤数据表后获取所有找到的行(不依赖pageLength)?

例:

library(shiny)
library(DT)
library(ggplot2)

x <- as.numeric(1:1000000)
y <- as.numeric(1:1000000)
data <- data.frame(x,y)

shinyApp(
  ui = fluidPage(dataTableOutput('tableId'),
                 plotOutput('plot1')),
  server = function(input, output) {    
    output$tableId = renderDataTable({
      datatable(data, options = list(pageLength = 100, lengthMenu=c(100,200,300,400,500,600)))
    })
    output$plot1 = renderPlot({
      filtered_data <- data[input$tableId_rows_all, ]
      ggplot(data=filtered_data, aes(x=x,y=y)) + geom_line()
    })
  }
)
Run Code Online (Sandbox Code Playgroud)

感谢您的任何信息

CPh*_*hil 5

您确定它已经不起作用了吗?从0.0.65版本开始,您应该具有以下功能:

input $ tableId_rows_current:当前页面上的行的索引
input $ tableId_rows_all:所有页面上的行的索引(在表被搜索字符串过滤之后)
来自DT文档

我正在仪表板中使用tableId_rows_all来解决这个问题,它正在工作。