Desidero creare un display reattivo, che visualizzi un numero diverso di grafici a seconda del valore del selettore di ingresso scelto. Nel caso del set di dati mtcars, diciamo che voglio lasciare che l'utente scelga tra tagliare da Nr. di Gears o Nr. di Carburatos per le trame da produrre.Lucido: numero dinamico di elementi/grafici di output
Guardando unique(mtcars$gear)
vediamo che ha 4 3 5
valori così 3 possibili, mentre unique(mtcars$carb)
ha 4 1 2 3 6 8
valori così 6 possibili. Pertanto, desidero produrre 6 grafici separati quando è selezionato Nr. of Carburators
e solo 3 grafici se è selezionato Nr. of Gears
. Ho giocato con conditionalPanel
ma invariabilmente esplode dopo che ho cambiato i selettori una o due volte. Aiuto?
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'
)
})
})
Wow, la tagList è quello che mi mancava da sempre. Grazie mille! –