在Shiny tutorial,有一个例子:反应性值与反应性表达式有什么区别?
fib <- function(n) ifelse(n<3, 1, fib(n-1)+fib(n-2))
shinyServer(function(input, output) {
currentFib <- reactive({ fib(as.numeric(input$n)) })
output$nthValue <- renderText({ currentFib() })
output$nthValueInv <- renderText({ 1/currentFib() })
})
我不明白怎么reactive
缓存值。它是否在内部执行类似return(function() cachedValue)
的操作? 现在我想知道我能否做到这一点?
fib <- function(n) ifelse(n<3, 1, fib(n-1)+fib(n-2))
shinyServer(function(input, output) {
currentFib <- reactiveValues({ fib(as.numeric(input$n)) })
output$nthValue <- renderText({ currentFib })
output$nthValueInv <- renderText({ 1/currentFib })
})