首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新selectInput?

如何更新selectInput?
EN

Stack Overflow用户
提问于 2021-09-10 13:58:36
回答 1查看 23关注 0票数 0

我正在尝试使用前一个selectInput中的值更新selecInput中的选项,但我无法让观察者正常工作。

我尝试使用observe、observeEvent和不使用它,但是选项没有更新。

代码语言:javascript
复制
library(shiny)

ui <-  fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("select_data", label = "Select Data", choices = c(" ", "islands", "iris", "mtcars")),
      selectInput("select_var", label = "Select Variable", choices = "" )
      ),
    mainPanel(
      tableOutput("table")
      )
    )
  )

 
server <- function(input, output, session) {
  
 observeEvent(input$select_data,{
    updateSelectInput(session, "select_var", choices = names(input$select_data))
    
  })
  
  varnames <- reactive({
    input$select_data
  })
  
  output$table <- renderTable({
    head(varnames[[input$select_var]])
  })
}

shinyApp(ui, server)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-10 14:31:48

您可以将数据存储在命名列表中,您可以从该列表中根据下拉列表进行选择。

代码语言:javascript
复制
library(shiny)


list_data <- tibble::lst(islands, iris, mtcars)

ui <-  fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("select_data", label = "Select Data", choices = c(" ", names(list_data))),
      selectInput("select_var", label = "Select Variable", choices = "")
    ),
    mainPanel(
      tableOutput("table")
    )
  )
)


server <- function(input, output, session) {
  
  observeEvent(input$select_data,{
    updateSelectInput(session, "select_var", choices = names(list_data[[input$select_data]]))
    
  })
  
  
  output$table <- renderTable({
    if(input$select_data != '' && input$select_var != '')
      head(list_data[[input$select_data]][input$select_var])
  })
}

shinyApp(ui, server)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69133343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档