我正在创建一个闪亮的应用程序,我可以在应用过滤器后下载使用 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)
}
)
} )
如图所示,我的目标是获得一个代码,当我单击下载按钮时,会下载此过滤器的结果。对于实现此目标的任何帮助,我将非常感激。
这个怎么样?
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)
}
)
}
)