2014-09-02 55 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