2017-01-04 53 views
0

当选择s1时,只显示一个sidebarPanel和mainPanel,结果alpha为0.05,功率为0.8。当选择s2时,只显示一个sidebarPanel和mainPanel,结果alpha为0.1,功率为0.9。checkboxInput和conditionalPanel闪亮

这是我的ui.R和server.R。

下面是我的ui.R文件的代码:

library(shiny) 
ui <- shinyUI(fluidPage(
    titlePanel("aaaaaaaaaaaaaaaa"), 
    tabsetPanel(
    navbarMenu("Means", 
      tabPanel("One Mean"), 
      tabPanel("Two Means", 
        wellPanel(
         checkboxInput(inputId = "s1", label = "S1", value = FALSE), 
         checkboxInput(inputId = "s2", label = "S2", value = FALSE) 
        ), 
        conditionalPanel(condition="input.s1==true", 
         sidebarPanel(
         p(strong("Error Rates")), 
         numericInput("alpha", label="Alpha", min=0, max=1,value=0.05), 
         numericInput("power", "Power", 0.8), 
         actionButton("submit","Submit") 
        ), 
         mainPanel(
         tabsetPanel(
          tabPanel("Main", 
            tableOutput("Table"), 
            uiOutput("Text") 
         ) 
         ) 
        ) 
        ), 
        conditionalPanel(condition="input.s2==true", 
            sidebarPanel(
             p(strong("Error Rates")), 
             numericInput("alpha", label="Alpha", min=0, max=1,value=0.1), 
             numericInput("power", "Power", 0.9), 
             actionButton("submit","Submit") 
            ), 
            mainPanel(
             tabsetPanel(
             tabPanel("Main", 
                tableOutput("Table"), 
                textOutput("Text") 
             ) 
             ) 
            ) 
        ) 
     ) 
    )))) 

下面是我的server.R文件的代码:

server <- shinyServer(function(input, output) { 
output$Table <- renderTable({ 
if(input$submit > 0) { 
    output<-data.frame(input$alpha,input$power) 
    output 
} 
}) 

output$Text<-renderText({ 
if(input$submit > 0) { 
    paste("alpha and power are",input$alpha,"and",input$power) 
} 
}) 
}) 

shinyApp(ui = ui, server = server) 

非常感谢你。

+0

您的欢迎。我在这里没有看到问题。你能更清楚地知道你想要什么吗? –

+0

如果我选择s1,那么只显示alpha = 0.05 Panel,如果我选择s1,那么只显示alpha = 0.1 Panel。现在两个面板在一个页面中。谢谢。 – stata

+0

@stata您是否需要在任何时候选择's1'和's2'?你如何期望它在这种情况下工作? – krish

回答

2

这应该适合你。您需要稍微修改服务器代码以处理不同的ID。您不能为各种UI元素使用相同的ID。

ui <- shinyUI(fluidPage(
    titlePanel("aaaaaaaaaaaaaaaa"), 
    tabsetPanel(
    navbarMenu("Means", 
       tabPanel("One Mean"), 
       tabPanel("Two Means", 
         wellPanel(
          radioButtons(inputId = "buttons", "Selections", c("S1", "S2"), selected = "S1", inline = TRUE) 
         ), 
         sidebarPanel(
          conditionalPanel(condition = "input.buttons == 'S1'", 
              p(strong("Error Rates")), 
              numericInput("alpha", label="Alpha", min=0, max=1,value=0.05), 
              numericInput("power", "Power", 0.8), 
              actionButton("submit","Submit") 
              ), 
          conditionalPanel(condition = "input.buttons == 'S2'", 
              p(strong("Error Rates")), 
              numericInput("alpha1", label="Alpha", min=0, max=1,value=0.1), 
              numericInput("power1", "Power", 0.9), 
              actionButton("submit1","Submit") 
              ) 
         ), 
         mainPanel(
          tabsetPanel(
          tabPanel("Main", 
            tableOutput("Table"), 
            textOutput("Text") 
          ) 
         ) 
         ) 
       ) 
    )))) 
+0

谢谢。现在用s1提交是行动,但用s2提交不是行动。 – stata

+0

@stata,我没有得到你想说的话。 – krish

+0

当我选择s2并提交时,Main的内容为空白。 – stata