2014-09-02 54 views
5

我正在嘗試創建一個Shiny應用程序。用戶界面UI.R看起來不錯,但我遇到了與server.R有關的問題。基本上我想要一個不同的繪圖輸出,具體取決於用戶選擇哪個radio選項。基於單選按鈕選擇創建圖塊R Shiny

用戶可以選擇選項ABC。如果用戶選擇選項A,條形圖爲B,並且選擇了C的餅圖,但我不知道如何對條件進行編碼,我想要繪製直方圖?這是否像if-else聲明?我一直在掙扎數小時!這裏是我的代碼示例:

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

謝謝!

回答

14

您可以使用開關來確定,根據該選擇的行爲:

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

完美!你剛剛救了我的生命謝謝你! – maryam 2014-09-02 23:18:27

+0

樂意幫忙.. – jdharrison 2014-09-02 23:19:03