【问题标题】:Using linked selectInput functions in Shiny在 Shiny 中使用链接的 selectInput 函数
【发布时间】:2018-07-24 01:33:23
【问题描述】:

Shiny 的新手,似乎还找不到这个信息:我正在制作一个带有两个 selectInput 下拉列表的应用程序,这样第二个(以黄色突出显示)依赖于第一个。

这是用于数据探索的,基本上会遍历不同的文件夹内容。这是我想要的:

  ui <- fluidPage(
  selectInput(inputId = "site", label = "Select Site", choices = dir(basepath)),
  selectInput(inputId = "duct", label = "Select Duct", 
              choices = dir(grep(input$site, dir(basepath, full.names = T), val = T)))
)

上面的代码显然不起作用。我不确定如何在另一个输入函数中使用input$site

我找到了一些答案:Displaying multiple inputbox on selecting multiple variables using selectinput function in R Shinyusing conditionalPanel in Shiny ui.R and server.R: different selectInput based on a condition,但它们并不直接适用,因为我没有第一个输入 (inputId = "site") 可能选项的详尽列表。

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    我基于mtcars 数据集创建了一个小示例。在这里,您会发现来自selectInput site 的齿轮将子集的数据并将返回第二个selectInput 称为duct,它只显示第一个中的选定值:

    library(shiny)
    
    ui <- basicPage(
      headerPanel("Test Shiny App"),
      sidebarPanel(
        selectInput(inputId = "site", label = "Select Site", choices = unique(mtcars$gear)),
        uiOutput("dynamicui")),
      mainPanel()
    )
    
    server <- function(input, output, session){
      output$dynamicui <- renderUI({
        selectInput(inputId = "duct", label = "Select Duct", choices = rownames(mtcars)[mtcars$gear %in% input$site])
      })
    }
    runApp(list(ui = ui, server = server))
    

    【讨论】:

    • 谢谢,它似乎正在工作。我是新手,我觉得我没有闪亮的输入/输出/布局选项的“完整图片”。我正在关注官方网络研讨会等,但是否有其他来源可以获得顶级概览?
    • 确保您在他们的网站shiny.rstudio.com/tutorial上完成教程
    • 是的,就是这些。
    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 2018-10-22
    • 2019-01-11
    • 2019-12-21
    • 2023-04-02
    • 2018-07-15
    • 2017-02-18
    • 2017-06-16
    相关资源
    最近更新 更多