R - 呼叫值与值()之间的差异

时间:2018-01-22 19:17:57

标签: r shiny reactive-programming

为什么要在下面的代码中调用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?
  })
}

1 个答案:

答案 0 :(得分:3)

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

来自?reactive

  

<强>值

     

一个包含在S3类中的函数&#34;被动&#34;

因此,

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