【问题标题】:Getting multiple outputs from reactive从响应式获取多个输出
【发布时间】:2015-02-07 04:54:58
【问题描述】:

我需要从闪亮的反应组件中获得多个输出。示例:

output_a,output_b <- reactive({
  a <- input$abc
  b <- input$abc*10
  a
  b
})

如何完成上面的事情,通过它我可以从一个反应组件中获得两个输出 ab

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    所以我遇到了同样的问题,我想要一个反应式的两个输出(我使用 for 循环和 ifelse 语句将变量分配给 2 个列表中的 1 个,我需要返回两个列表)。

    我找到了以下解决方法,我不确定它是否也适用于您,但我将其发布在这里以防它对某人有所帮助:

    combo_output <- reactive({
      a <- input$abc
      b <- input$abc*10
      combo <- list(a = a, b = b)
      combo
      })
    

    那么您可以稍后访问这些:

        output$someOutput <- renderSomething({
            combo <- combo_output()
            a <- combo$a
            b <- combo$b
            ...
        })
    

    不确定这是否是最佳解决方案,但它对我有用。

    【讨论】:

      【解决方案2】:

      如果我理解正确,您想创建一个对 input$abc 更改的反应。每次 UI 更改 input$abc 时,您都希望服务器的 a 和 b 值发生变化。

      如果是这样: 基于tutorial,我建议有2个连续的反应:

      output_a<-reactive({
         input$abc
      })
      
      output_b<-reactive({
         input$abc*10
      })
      

      请记住,它们将被依次执行,首先您将获得 output_a,然后是 output_b。

      希望这对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2016-06-19
        • 2017-12-13
        • 2018-06-03
        • 1970-01-01
        • 2020-10-18
        • 1970-01-01
        • 2022-06-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多