【问题标题】:Making input reactive in flexdashboard shiny app在 flexdashboard 闪亮的应用程序中使输入反应
【发布时间】:2021-05-25 01:55:15
【问题描述】:

我正在尝试在 flexdashboard 闪亮应用中使输入对另一个输入做出反应。

这里是 df 示例:

> dat = data.frame(id = LETTERS[1:10],g1 = c(rep(24,5),rep(35,5)),g2 = c(2401,2401,2402,2402,2403,3501,3501,3502,3503,3503),val = seq(from = 10, to = 100, by = 10))
> dat
   id g1   g2 val
1   A 24 2401  10
2   B 24 2401  20
3   C 24 2402  30
4   D 24 2402  40
5   E 24 2403  50
6   F 35 3501  60
7   G 35 3501  70
8   H 35 3502  80
9   I 35 3503  90
10  J 35 3503 100

创建简单的反应集:

dat_r <- reactive({
    out = dat %>% filter(g1 == input$g1, g2 == input$g2)
    return(out)
})

为应用创建输入:

shinyWidgets::pickerInput('g1','Select g1',choices = unique(dat$g1),
                          options = list(`actions-box` = T), multiple = T, selected = 24)
shinyWidgets::pickerInput('g2','Select g2',choices = unique(dat$g2),
                          options = list(`actions-box` = T), multiple = T, selected = 2401)

创建输出:

renderDataTable(dat_r())

这给出了:

我的问题是,如果我在 g1 中选择 24,我想要在 g2 中的唯一选项以 24 开头,如果我选择 35,我想要的唯一选项以 35 开头,我该怎么做?

谢谢

【问题讨论】:

    标签: r shiny flexdashboard


    【解决方案1】:

    在 Shiny 中,您不能以这种方式操作 UI 元素。如果您希望能够动态更改输入的选项,可能的方法之一如下:

    在 UI 中而不是所需的小部件中包含一个 UIOutput,例如:

    ui <- shiny::fluidPage(
         UIOutput("picker1"),
         UIOutput("picker2")
    )
    

    然后在服务器中你可以定义类型的函数:

    server <- function(input, output, session) {
         output$picker1 <- shiny::renderUI({
             shinyWidgets::pickerInput('g1', 'Select g1', choices = unique (dat$g1), options = list(`actions-box` = T), multiple = T, selected = 24)
        })
    
         output$picker2 <- shiny::renderUI({
             shinyWidgets::pickerInput('g2', 'Select g2', choices = unique (dat$g2),
                               options = list(`actions-box` = T), multiple = T, selected = 2401)
         })
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2021-11-12
      • 1970-01-01
      • 2019-08-17
      • 2017-07-27
      • 2016-08-16
      • 2014-04-11
      • 2018-12-29
      • 2020-08-18
      相关资源
      最近更新 更多