2014-09-02 3 views
5

Sto provando a creare un'app Shiny. L'interfaccia utente UI.R sembra giusta ma ho problemi con server.R. Fondamentalmente voglio un output di stampa diverso a seconda di quale opzione radio l'utente seleziona.creazione di grafici in base alla selezione del pulsante di scelta R Lucido

L'utente può scegliere l'opzione A, B o C. Voglio disegnare un istogramma se l'utente seleziona l'opzione A, il grafico a barre per B e un grafico a torta per l'opzione C ma non so come codificare la condizione? È come una dichiarazione if-else? Ho lottato per ore! Ecco il mio esempio di codice:

output$plots <- renderPlot({  
    if selection == 'A' 
     # plot histogram 
    if selection == 'B' 
     # plot bar chart 
    if selection == 'C' 
     # plot pie chart 
}) 

Grazie!

risposta

14

È possibile utilizzare l'interruttore per determinare il comportamento in base alla selezione:

library(shiny) 
myData <- runif(100) 
plotType <- function(x, type) { 
    switch(type, 
     A = hist(x), 
     B = barplot(x), 
     C = pie(x)) 
} 
runApp(list(
    ui = bootstrapPage(
    radioButtons("pType", "Choose plot type:", 
       list("A", "B", "C")), 
    plotOutput('plot') 
), 
    server = function(input, output) { 
    output$plot <- renderPlot({ 
     plotType(myData, input$pType) 
    }) 
    } 
)) 
+0

perfetto! mi hai appena salvato la vita grazie !! – maryam

+0

Felice di aiutare .. – jdharrison