【问题标题】:r shiny download filtrered datatables (DT)r闪亮下载过滤数据表(DT)
【发布时间】:2016-08-18 14:27:00
【问题描述】:

我正在尝试做一个shiny 应用程序来下载过滤后的Datatable

  • 使用searsh 过滤
  • 通过删除带有delete button 的行进行过滤

(下载部分按预期工作)

问题:当我第一次使用数据表中的搜索区域进行过滤时,如果我使用按钮删除一行,它会重置第一个过滤器

我的可复制示例:编辑工作解决方案

library(shinydashboard)
library(DT)
library(shiny)

ui <- dashboardPage(
  dashboardHeader(title = "Info boxes"),
  dashboardSidebar(),
  dashboardBody(
    fluidRow(DT::dataTableOutput('data')),
    fluidRow(p(class = 'text-center', downloadButton('x3', 'Download Filtered Data')))
  )
)

server <- function(input, output) {
   df <- reactiveValues(data = data.frame(
      Value1 = 1:10,
      Value2 = c("A", "B", "C", "D", "E"),
      stringsAsFactors = FALSE,
      row.names = 1:10
   ))

   output$data <- DT::renderDataTable(
   df$data, server =  TRUE, filter = 'top', escape = FALSE, selection = 'none')

   # download the filtered data
    output$x3 = downloadHandler('emergence filtré.csv', content = function(file) {
        s = input$data_rows_all
        write.table(df$data[s,], file  ,sep=";",row.names = F)
     })    
}
shinyApp(ui = ui, server = server)

谢谢

【问题讨论】:

    标签: r download datatables shiny dt


    【解决方案1】:

    我认为这是因为搜索过滤器是在客户端(在网络浏览器中)完成的,它并没有真正改变底层数据框。一种可能的替代方法是向表中添加过滤器并将其用作搜索功能,并设置服务器端处理。不过,这不会在一个框中进行全局搜索。

    output$data <- DT::renderDataTable(
      df$data, server = TRUE, filter = 'top', escape = FALSE, selection = 'none'
    )
    

    【讨论】:

    • 它正在工作我编辑了代码(并删除了删除按钮)
    猜你喜欢
    • 2018-10-04
    • 2021-11-20
    • 2018-02-13
    • 2017-11-09
    • 2023-03-28
    • 2015-09-28
    • 2018-02-01
    • 2016-01-02
    • 1970-01-01
    相关资源
    最近更新 更多