我想獲得依賴於以前的輸入的輸入選擇。R - 閃亮的條件輸入
require(shiny)
require(dplyr)
dat <- data.frame(id1 = c(rep("A",5),rep("B",5)),
id2 = c(rep("C",3),rep("D",3),rep("E",4)),
id3 = c(rep("F",2),rep("G",3),rep("H",5)), stringsAsFactors=FALSE)
ui <- shinyUI(fluidPage(
sidebarPanel(
selectInput('id1', 'ID1', choices = unique(dat$id1)),
selectInput("id2", "ID2", choices = unique(dat$id2)),
selectInput("id3", "ID3", choices = unique(dat$id3))
)
)
)
server <- function(input, output,session) {
observeEvent(
{
input$id1
},{
input$id2
temp <- dat %>% filter(id1%in%input$id1)
updateSelectInput(session,"id2",choices = unique(temp$id2))
}
)
}
shinyApp(ui = ui, server = server)
這適用於輸入1和2,但是如果我添加其他輸入到observeEvent
,應用程序chrashes。例如:
server <- function(input, output,session) {
observeEvent(
{
input$id1
},{
input$id2
temp <- dat %>% filter(id1%in%input$id1)
updateSelectInput(session,"id2",choices = unique(temp$id2))
},{
input$id3
temp <- dat %>% filter(id1%in%input$id1 & id2%in%input$id2)
updateSelectInput(session,"id3",choices = unique(temp$id3))
}
)
}
如何將其他輸入傳遞給observeEvent
?
你可以分享控制檯中出現什麼錯誤嗎? –
@TedoG。 '.getReactiveEnvironment()中的錯誤$ currentContext(): 沒有活動的被動上下文,不允許操作。 (你試圖做一些只能在反應式表達式或觀察者內部完成的事情。)'這很奇怪,因爲輸入在反應式表達式中。 – count
您是否嘗試將'dat'數據變量移動到反應表達式中? –