2016-12-19 84 views
0

我試圖取消選中單擊休息按鈕上的單選按鈕。 我正在使用Shiny包來生成這些單選按鈕。 單擊單選按鈕「比較」,用多個複選框調用條件面板。 選擇任何數量的複選框&單擊比較按鈕進行比較。 我想摺疊條件面板,當我點擊重置按鈕。 或取消選中Radion按鈕,以便它自動隱藏ConditionalPanel。取消單擊R(閃亮)中的重置按鈕上的單選按鈕

ui.R

sidebarLayout( 
sidebarPanel( 
selectInput("villNane", "Choose a Village:", choices = c("All","Village1", "Village2","Village3","Village4","Village5"), selected = "All"), 
selectInput("YesNo", "Vaccinated/Not Vaccinated:", choices = c("Yes","No")), 
radioButtons("compare", "Comparison :", choices="Compare", selected = character(0), inline = FALSE,width = NULL),  
    conditionalPanel(
    condition="input.compare =='Compare'", 
    checkboxGroupInput(inputId="somevalue", label="Village :",choices=c("Village1","Village2","Village3","Village4","Village5"), selected=NULL, inline=TRUE), 
    actionButton("compAction", "Compare"), 
    actionButton("resetAction", "Reset") 
) 

server.R

if(inAc == 1){ 
     CB <-input$somevalue 
     if((YN == 'Yes') &(villName=="All")){ 
      layout(matrix(c(1,2,3,4,5), 2,2, byrow = TRUE),widths=c(3,3), heights=c(3,3)) 
      for (val in 1:length(CB)) { 
      gotData1 <- get(CB[val],vac) 
      pct <- round(gotData1/sum(gotData1)*100) 
      lbls <- c("Attack", "Not Attack") 
      lbls2 <- paste(lbls, "-", pct, "%") 
      pie(gotData1,labels=lbls2,radius=1.15) 
      } 
     } 

     } 

回答

1

我想你也許會發現它更容易使用shinyjs包。

library(shiny) 
library(shinyjs) 

shinyApp(
    ui = 
    shinyUI(
     sidebarLayout( 
     sidebarPanel(
      useShinyjs(), 
      verbatimTextOutput("display"), 
      selectInput("villNane", "Choose a Village:", choices = c("All","Village1", "Village2","Village3","Village4","Village5"), selected = "All"), 
      selectInput("YesNo", "Vaccinated/Not Vaccinated:", choices = c("Yes","No")), 
      actionButton("compare", "Compare"), 
      hidden(
      checkboxGroupInput(inputId="somevalue", label="Village :",choices=c("Village1","Village2","Village3","Village4","Village5"), selected=NULL, inline=TRUE) 
     ), 

      actionButton("compAction", "Compare"), 
      actionButton("resetAction", "Reset") 
     ), 
     mainPanel() 
    ) 
    ), 

    server = 
    shinyServer(function(input, output, session){ 
     observeEvent(
     input$compare, 
     { 
      show("somevalue") 
     } 
    ) 

     observeEvent(
     input$resetAction, 
     { 
      hide("somevalue") 
     } 
    ) 

    }) 
)