使用内置的搜索功能过滤数据表后,我希望能够下载该数据表。或能够使用数据表中使用的相同类型的搜索来过滤数据帧并访问数据表上的搜索。
如果使用客户端处理,则可以使用input object完成此操作input[["tablename_rows_all"]]
。(附加_rows_all
到数据表输出插槽的名称)
该_rows_all
对象将返回数据框的行索引。downloadHandler
启动下载时,可以在其中使用它来对数据帧进行子集化。
library(shiny) library(DT) shinyApp( ui = shinyUI( fluidPage( DT::dataTableOutput("dt"), p("Notice that the 'rows_all' attribute grabs the row indices of the data."), verbatimTextOutput("filtered_row"), downloadButton(outputId = "download_filtered", label = "Download Filtered Data") ) ), server = shinyServer(function(input, output, session){ output$dt <- DT::renderDataTable( datatable(mtcars, filter = "top"), server = FALSE ) output$filtered_row <- renderPrint({ input[["dt_rows_all"]] }) output$download_filtered <- downloadHandler( filename = "Filtered Data.csv", content = function(file){ write.csv(mtcars[input[["dt_rows_all"]], ], file) } ) }) )