1

我正在尝试创建一个仅在单击按钮时更新 SelectInput 和 PickerInput 的操作按钮。

library(shiny)    

shinyUI(basicPage(

v1 <- c("a","b","c")
v2 <- 1:3
data <- data.frame(v1,v2)

pickerInput("v1",label = "v1",""),
uiOutput("secondSelection"),
actionButton("go", "Update")

))


shinyServer(function(input, output) {

output$secondSelection <- renderUI({
pickerInput("v2", "Variable 2:","")
})

v1vals <- reactiveValues(v1)
v2vals <- reactiveValues(v2)

observe({

if(input$go > 0) {
v1vals$v1<- levels(data$v1)
v2vals$v2<- levels(data$v2)
}

v1vals$v1<- input$v1
v2vals$v2<- input$v2
})

output$text <- renderText({values$variable})

observe( observeEvent(input$go, {

updatePickerInput(session,"v1",label = "variable 1",
                choices = levels(data$v1),
                selected = levels(data$v1), multiple = TRUE)
}))

observe( observeEvent(input$go, {

updatePickerInput(session, "v2", choices =             
as.character(unique(data[data$v1==input$v1,"v2"])),
options = list(`actions-box` = TRUE), 
multiple = TRUE, selected =levels(data$v2))

}))

})

我期望 v1 和 v2 的默认选择是所有级别,并且过滤器仅在单击操作按钮时更新应用程序的其余部分。

4

0 回答 0