下载过滤表

问题描述 投票:0回答:1

我正在创建一个闪亮的应用程序,我可以在应用过滤器后下载使用 DT 创建的表格。我想知道是否有一种方法,在过滤后,如下列所示,单击下载按钮并下载整个过滤后的数据集。无论应用过滤器的列如何,代码都应该允许这样做。

library(shiny)
library(DT)
shinyApp(ui = fluidPage(DTOutput('tbl'),downloadButton("downloadData", " Download", icon = icon("download"))),
 
   server = function(input, output) {
       datasetInput <- iris
       output$tbl = renderDT(
           datasetInput %>% mutate_at(vars(5), as.factor), options = list(lengthChange = FALSE),  filter = 'top',
         )
       output$downloadData <- downloadHandler(
           filename = function() {
             paste("Data.csv")
             },
           content = function(file) {
               write.csv(datasetInput(), file)
             }
         )

} )

如图所示,我的目标是获得一个代码,当我单击下载按钮时,会下载此过滤器的结果。对于实现此目标的任何帮助,我将非常感激。

r shiny dt
1个回答
0
投票

这个怎么样?

library(shiny)
library(DT)
library(tidyverse)

shinyApp(
    ui = fluidPage(
        DTOutput('tbl'),
        downloadButton("download", " Download", icon = icon("download"))
    ),
    server = function(input, output) {
        datasetInput <- iris

        output$tbl = renderDT(
            datasetInput %>% mutate(across(5, as.factor)),
            options = list(lengthChange = FALSE),
            filter = 'top'
        )

        output$download <- downloadHandler(
            filename = function() {
                paste("Data.csv")
            },
            content = function(file) {
                selected_rows <- input$tbl_rows_all
                filtered_data <- datasetInput[selected_rows, ]
                write.csv(filtered_data, file, row.names = FALSE)
            }
        )
    }
)
© www.soinside.com 2019 - 2024. All rights reserved.