代码之家  ›  专栏  ›  技术社区  ›  firmo23

基于另一个updateselectInput()的值更新updateselectInput()

  •  0
  • firmo23  · 技术社区  · 2 年前

    在下面的应用程序中,我想更新第二个 updateSelectInput() 为了排除第一个选项中选择的值,我选择了 updateSelectInput() 上传文件后。通常,该文件会上传用于闪亮小部件值的数据集。

    ## app.R ##
    library(shiny)
    library(shinydashboard)
    
    ui <- dashboardPage(
      dashboardHeader(),
      dashboardSidebar(
        fileInput("file1", "Choose CSV File", accept = ".csv"),
    
        selectInput("col","Pick a column to change its name",
                    choices = colnames(iris)[-c(1)]),
        selectInput("col2","Pick a column to change its name",
                    choices = colnames(iris)[-c(1)])
    
      ),
      dashboardBody(
        
        )
    )
    
    server <- function(session,input, output) {
      
      observeEvent(input$file1, {
        updateSelectInput(session, "col", label = "Select target country", choices = colnames(iris)[-c(1)])
        ex_names <- colnames(iris)[-1]
        ex_names <- ex_names[! ex_names %in% input$col]
        updateSelectInput(session, "col2", label = "Select reference countries", choices =colnames(iris)[-c(1)] )  
    
        
      })
      
     
      
    }
    
    shinyApp(ui, server)
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   ekolima    2 年前

    添加一个 observeEvent 对于 col 将会更新 col2 每次对的选定值进行更改时 上校

    observeEvent(input$col, {
        ex_names <- colnames(iris)[-1]
        ex_names <- ex_names[!ex_names %in% input$col]
        updateSelectInput(session, "col2", label="Select reference countries", choices=ex_names)  
      })