2014-09-02 20 views
5

Próbuję utworzyć aplikację Shiny. Interfejs użytkownika UI.R wygląda dobrze, ale mam problemy z server.R. Zasadniczo chcę mieć inną wydajność wydruku w zależności od wybranej przez użytkownika opcji radio.tworzenie działek w oparciu o wybór przycisku radiowego R Błyszczące

Użytkownik może wybrać opcję A, B lub C. Chcę narysować histogram, jeśli użytkownik wybierze opcję A, wykres słupkowy dla B i wykres kołowy dla opcji C, ale nie wiem, jak zakodować ten warunek? Czy jest to jak instrukcja if-else? Walczę od wielu godzin! Oto mój przykładowy kod:

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

Dzięki!

Odpowiedz

14

Można użyć przełącznika w celu określenia zachowań w oparciu o wybór:

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

idealny! właśnie uratowałeś moje życie, dziękuję! – maryam

+0

Chętnie pomożemy .. – jdharrison

Powiązane problemy