Chcę ustawić wyświetlacz reaktywny, aby wyświetlał inną liczbę działek w zależności od wybranej wartości selektora wejścia. W przypadku zbioru danych mtcars, załóżmy, że chcę, aby użytkownik wybrał między skrawaniem według numeru. Gears lub Nr. Carburatos dla działek, które zostaną wyprodukowane.Shiny: Dynamiczna liczba elementów wyjściowych/działek
Patrząc na unique(mtcars$gear)
widzimy, że ma 4 3 5
, więc 3 możliwe wartości, a unique(mtcars$carb)
ma 4 1 2 3 6 8
, więc 6 możliwych wartości. Dlatego chcę utworzyć 6 oddzielnych działek po wybraniu Nr. of Carburators
i tylko 3 działki po wybraniu Nr. of Gears
. Grałem z conditionalPanel
, ale niezmiennie wysadza się po przełączeniu między selektorami raz lub dwa razy. Wsparcie?
Shiny UI:
library(shiny)
library(googleVis)
shinyUI(bootstrapPage(
selectInput(inputId = "choosevar",
label = "Choose Cut Variable:",
choices = c("Nr. of Gears"="gear",
"Nr. of Carburators"="carb")),
htmlOutput('mydisplay') ##Obviously I'll want more than one of these...
# conditionalPanel(...)
))
Shiny Serwer:
shinyServer(function(input, output) {
#Toy output example for one out of 3 unique gear values:
output$mydisplay <- renderGvis({
gvisColumnChart(
mtcars[mtcars$gear==4,], xvar='hp', yvar='mpg'
)
})
})
Wow, tagList jest tym, czego mi brakowało przez cały czas. Wielkie dzięki! –