Параметры реактивной функции

Моя цель - сделать реактивную блестящую функцию в 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))
})

который сработает, если какой-либо из входов изменится

Другие вопросы по тегам