在Shiny应用程序中,可以使用ActionButton模块方便地实现筛选数据的功能。以下是一个基于Shiny模块化编程的代码示例,展示如何使用ActionButton来筛选数据。
# actionButtonModule.R
actionButtonUI <- function(id) {
ns <- NS(id)
tagList(
actionButton(ns("runButton"), "Filter Data")
)
}
actionButtonServer <- function(id, data, outputData) {
moduleServer(
id,
function(input, output, session) {
filteredData <- reactive({
req(input$runButton)
filteredData <- data()
filteredData
})
outputData$filteredData <- filteredData()
return(list(filteredData = filteredData))
}
)
}
# app.R
library(shiny)
source("actionButtonModule.R")
ui <- fluidPage(
actionButtonUI("filterButton"),
tableOutput("outputTable")
)
server <- function(input, output) {
outputTable <- reactive({
data <- iris
filteredData <- actionButtonServer("filterButton", data, reactiveValues(filteredData = NULL))$filteredData
filteredData
})
output$outputTable <- renderTable({
outputTable()
})
}
shinyApp(ui, server)
在这里,"actionButtonModule.R"中的代码创建了一个ActionButton模块,用于筛选数据。此模块的UI组件包含了一个名为"runButton"的Action Button,用于触发数据筛选操作。在"actionButtonServer"函数中,使用"moduleServer"来创建Shiny模块,并实现了具体的数据筛选操作。这里,我们将数据作为参数传递给模块,并使用reactive函数来返回筛选后