2015-02-07 3 views
3

Мне нужно получить несколько выходов из реактивного компонента в блестящем состоянии. Пример:Получение нескольких выходов от реактивных

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

Как может что-то подобное выше можно сделать, через которые я могу получить два выхода и б от одного реактивного компонента?

ответ

0

Если я правильно понял, вы бы хотели создать реактивную переменную ввода $ abc. Каждый раз, когда пользовательский интерфейс будет изменять ввод $ abc, вы хотите изменить значения сервера для a и b.

Если это так: Основываясь на tutorial, я предложил бы иметь 2 последовательных реактивов:

output_a<-reactive({ 
    input$abc 
}) 

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

Имейте в виду, что они будут последовательно выполнены, сначала вы получите output_a, а потом output_b.

Надеюсь, это вам помогло.

1

У меня была такая же проблема, мне нужны два выхода из одного реактивного (я использовал цикл for и оператор ifelse для назначения переменных в 1 из 2 списков, и мне нужны оба списка, которые нужно вернуть).

Я нашел следующий обходной путь, я не уверен, если это будет работать для вас, но я отправляю его здесь, в случае, это помогает кому-то:

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 
     ... 
    }) 

Не уверен, что это оптимальное решение, но оно сработало для меня.

Смежные вопросы