Shiny: Dynamische Anzahl von Ausgabeelementen / Plots
Ich möchte eine reaktive Anzeige machen, dass zeigt eine unterschiedliche Anzahl von Plots an, abhängig davon, welcher Wert des Eingabeselektors gewählt wurde. Im Fall des mtcars-Datensatzes möchte ich den Benutzer zwischen dem Schneiden nach Nr. Wählen lassen. von Zahnrädern oder Nr. von Carburatos für die Parzellen produziert werden.
Anschauenunique(mtcars$gear)
wir sehen es hat4 3 5
so 3 mögliche Werte, währendunique(mtcars$carb)
hat4 1 2 3 6 8
also 6 mögliche Werte. Ich möchte daher 6 separate Parzellen erstellen, wennNr. of Carburators
ist ausgewählt und nur 3 Diagramme, wennNr. of Gears
ist ausgewählt. Ich habe mit @ gespieconditionalPanel
aber es bläst immer auf, nachdem ich ein- oder zweimal zwischen den Selektoren gewechselt habe. Hilfe
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 Server:
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'
)
})
})