从反应中获取多个输出

时间:2015-02-07 04:54:58

标签: r shiny

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

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

如何通过以上方式完成我可以从一个反应组件获得两个输出 a b

2 个答案:

答案 0 :(得分:2)

所以我有同样的问题,我想要一个被动的两个输出(我使用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
        ...
    })

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

答案 1 :(得分:0)

如果我理解正确,你想要对输入$ abc的变化做出反应。每次UI更改输入$ abc时,您都希望a和b的服务器值更改。

如果是这样的话: 根据{{​​3}},我建议连续2次反应:

output_a<-reactive({
   input$abc
})

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

请记住,它们会被连续执行,首先你会得到output_a,然后是output_b。

希望这有助于你。