【发布时间】:2017-11-18 02:51:08
【问题描述】:
我有一个更新过滤器的应用程序,但似乎无法正常工作,我无法修复它。我希望在更改依赖过滤器时更新所有过滤器 我认为问题在于observeEvent 感谢您的帮助
library(shiny)
library(DT)
library(dplyr)
VG <- c("A", "A", "B", "B", "B", "C", "A")
AG <- c(1, 2, 1, 3, 4, 2, 1)
AP <- letters[1:7]
AK <- paste(VG, AG, AP, sep = "-")
data <- data.frame(VG, AG, AP, AK)
ui <- fluidPage(
column(3,
selectInput("VG", label = h4("VG.ETD"),choices = unique(data$VG)),
selectInput("AG", label = h4("AG.ETD"),choices = unique(data$AG))),
column(3,
selectInput("AP", label = h4("AP.ETD"),choices = unique(data$AP)),
selectInput("AK", label = h4("AK.ETD"),choices = unique(data$AK)),
actionButton("go", "GO")),
column(6,DT::dataTableOutput("dtt"))
)
server<-function(input,output,session){
observeEvent(input$VG,{
updateSelectInput(session, 'AG', choices = unique(data$AG[data$VG %in% input$VG]))
})
observeEvent(input$AG,{
updateSelectInput(session, 'AP', choices = unique(data$AP[data$AG %in% input$AG &
data$VG %in% input$VG]))
})
observeEvent(input$AP,{
updateSelectInput(session, 'AK', choices = unique(data$AK[data$AP %in% input$AP &
data$AG %in% input$AG &
data$VG %in% input$VG]))
})
df <- eventReactive(input$go, {
data %>% filter(VG %in% input$VG,
AG %in% input$AG,
AP %in% input$AP,
AK %in% input$AK)
})
output$dtt <- DT::renderDataTable({
df()
})
}
shinyApp(ui=ui,server=server)
【问题讨论】:
-
究竟什么是“依赖过滤器”?你想要这里的行为是什么?我不确定我是否理解您描述的问题。
-
例如当我更改VG或“B”时,AK ETD没有更新,仍然给我A-1-a
-
我需要'obserEvent(input$AP | input$AG | input$VG, ...)'之类的东西
-
不要编辑问题来提出不同的问题。而是开始一个新帖子。