Параметры реактивной функции
Моя цель - сделать реактивную блестящую функцию в R. Есть несколько выходов (например, таблиц), которые можно привязать к аналогичной функции. Однако мне нужно, чтобы функция реагировала на некоторые параметры, специфичные для одной таблицы. Вот простой пример кода, который не работает, но он проясняет мою идею - я надеюсь:
output$tableOne <- DT::renderDataTable({
getData(foo)
})
getData <- reactive(function(funParameter){
corrStartDate <- input$StartDate
corrEndDate <- input$EndDate
return(someData(corrStartDate, corrEndDate, funParameter))
})
Во всех таблицах (если их больше одной) я не хочу показывать данные с другим базовым параметром (getData(x, y, foo)). Поэтому вторая таблица может использовать "getData(x, y, bar)". Я не хочу писать каждый раз одну и ту же функцию для другой таблицы.
Решение выше не работает, так как реактивные функции не поддерживают параметры.
Как бы вы решили это?
1 ответ
Это должно работать вместо:
getData <- eventReactive(input$funParameter, {
corrStartDate <- input$StartDate
corrEndDate <- input$EndDate
return(someData(corrStartDate, corrEndDate, input$funParameter))
})
eventReactive
только обновления, если аргументы заявлены заранее изменить. На практике этот реактив не сработает, если input$StartDate
или же input$EndDate
изменения.
Если это не то, что вы хотите, нормальные реактивные функции должны работать. То есть:
getData <- reactive({
funParameter <- input$funParameter
corrStartDate <- input$StartDate
corrEndDate <- input$EndDate
return(someData(corrStartDate, corrEndDate, funParameter))
})
который сработает, если какой-либо из входов изменится