【问题标题】:R - Difference between calling value vs value()R - 调用值与值()之间的差异
【发布时间】:2018-01-22 19:17:57
【问题描述】:

为什么要在下面的代码中调用 df() 而不是 df?这是与反应函数一起使用的正确语法吗?

function(input, output, session){
  df <- reactive({
    head(cars, input$nrows)
  })
  output$plot <- renderPlot({
    plot(df()) #Why call df() instead of df?
  })
  output$table <- renderTable({
    df() #Why call df() instead of df?
  })
}

【问题讨论】:

  • 所以我不知道你需要多少解释。函数reactive 返回一个函数。所以foo &lt;- reactive({...}) 正在根据你给它的表达式创建一个函数foo()。这就是为什么它必须作为函数调用。更深入的“为什么”答案可能会深入研究如何获得反应行为的唯一方法是通过函数......
  • @joran 现在说得通了。我不知道反应式返回一个函数。感谢您的解释!

标签: r shiny reactive-programming


【解决方案1】:

您已将df 的值设置为等于调用reactive 的返回值。

来自?reactive:

价值

一个函数,封装在一个“反应式”S3 类中

因此,df 是一个函数,当被调用时,它将评估保存的表达式并返回当前值(并且还会触发更新)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 2018-04-26
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    相关资源
    最近更新 更多