R-根据选择输入禁用/启用单个单选按钮

R-根据选择输入禁用/启用单个单选按钮,r,shiny,R,Shiny,我想在选择“B”时禁用“3”,并将单选按钮选择移动到“1”。当再次选择“A”时,我希望再次启用“3”。我用shinyjs::runjs(“”)尝试了几件事,但效果并不理想。任何帮助都将不胜感激 library(shiny) library(shinyjs) library(shinyWidgets) if (interactive()) { ui <- fluidPage( useShinyjs(), selectInput(inputId="input&qu

我想在选择“B”时禁用“3”,并将单选按钮选择移动到“1”。当再次选择“A”时,我希望再次启用“3”。我用
shinyjs::runjs(“”
)尝试了几件事,但效果并不理想。任何帮助都将不胜感激

library(shiny)
library(shinyjs)
library(shinyWidgets)
if (interactive()) {
  ui <- fluidPage(
    useShinyjs(),
    selectInput(inputId="input", 
                label="choose ",
                c("A" = "a",
                  "B" = "b")),
    radioButtons(inputId="select", 
                 label="number",
                 c("1"="one",
                   "2"="two",
                   "3"="three")),
    mainPanel(verbatimTextOutput("output")
  )
)
  server <- function(input, output) {
    observeEvent(input$input, {
      if(input$input=="b"){
        # disable 3
        shinyjs::runjs("")
      }else{
        # enable 3 again if input$input=="a"
      }
    })
    output$output <- renderText({ input$select })
  }
  shinyApp(ui, server)
}


库(闪亮)
图书馆(shinyjs)
图书馆(shinyWidgets)
if(interactive()){

ui一种方法是使用
conditionPanel
。试试这个

library(shiny)
library(shinyjs)
library(shinyWidgets)

  ui <- fluidPage(
    useShinyjs(),
    selectInput(inputId="input", 
                label="choose ",
                c("A" = "a",
                  "B" = "b")),
    conditionalPanel(condition = "input.input == 'a'",
                     radioButtons(inputId="select", 
                                  label="number",
                                  c("1"="one",
                                    "2"="two",
                                    "3"="three"),
                                  selected="three")
    ),
    conditionalPanel(condition = "input.input == 'b'",
                     radioButtons(inputId="select2", 
                                  label="number",
                                  c("1"="one",
                                    "2"="two"),
                                  selected="one")
    ),

    mainPanel(verbatimTextOutput("output")
    )
  )
  server <- function(input, output) {
   
    mysel <- reactive({
      if (input$input=="a") {
        sel <- input$select
      } else{
        sel <- input$select2
      }
      sel 
    })
    
    output$output <- renderText({ mysel() })
  }
  shinyApp(ui, server)

非常感谢:)
  ui <- fluidPage(
    useShinyjs(),
    selectInput(inputId="input",
                label="choose ",
                c("A" = "a",
                  "B" = "b")),
    radioButtons(inputId="select",
                 label="number",
                 c("1"="one",
                   "2"="two",
                   "3"="three"),
                 selected="one"),
    

    mainPanel(verbatimTextOutput("output")
    )
  )
  server <- function(input, output, session) {

    observeEvent(input$input, {
      if(input$input=="b"){
        mychoices <- c("1"="one", "2"="two")
        
      }else{
        mychoices <- c("1"="one", "2"="two", "3"="three")
      }
      updateRadioButtons(session, "select", choices = mychoices)
    })
    output$output <- renderText({ input$select })

    
  }
  shinyApp(ui, server)