无功功能参数

时间:2016-01-11 15:22:05

标签: r shiny

我的目标是在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 个答案:

答案 0 :(得分:10)

这应该起作用:

getData <- eventReactive(input$funParameter, {
  corrStartDate <- input$StartDate
  corrEndDate <- input$EndDate

  return(someData(corrStartDate, corrEndDate, input$funParameter))
})

eventReactive仅在事先声明的参数更改时才更新。实际上,如果input$StartDateinput$EndDate发生变化,则无法触发此反应。

如果这不是您想要的,那么正常的无功功能应该起作用。即:

getData <- reactive({

  funParameter <- input$funParameter
  corrStartDate <- input$StartDate
  corrEndDate <- input$EndDate

  return(someData(corrStartDate, corrEndDate, funParameter))
})

如果任何输入改变

,将触发