gpt4 book ai didi

r - Shiny (R) 中的自引用 react 变量

转载 作者:行者123 更新时间:2023-12-02 08:16:18 25 4
gpt4 key购买 nike

我正在构建一个 Shiny 的应用程序,它定期读取新数据,然后使用该数据和先前的参数估计来生成新的参数估计(依此类推)。

问题是,参数必须在数据更新时 react 更新,而且还需要引用其先前的值,我不知道如何使用其当前值来计算其下一个值,而不会提示无限递归。下面是一个最小的例子,它的目的是打印一个每秒递增 1 的值。

library(shiny)

omega <- 0

# Define the UI
myui <- basicPage(
textOutput('var')
)

# Define the server code
myserver <- function(input, output, session) {

omega <<- reactive({
invalidateLater(1000, NULL)
return(omega() + 1)
})

output$var <- renderText(omega())
}


# Return a Shiny app object
shinyApp(ui = myui, server = myserver)

这会产生以下错误

evaluation nested too deeply: infinite recursion / options(expressions=)?

如果我尝试使用isolate() 来保护omega 内对omega() 的调用,我会因C 堆栈溢出而出现段错误。

有办法解决这个问题吗?或者也许有更好的方法在 Shiny 中做我想做的事?

最佳答案

这是问题的快速解决方案,但并未完全解决问题。

library(shiny)

omega_nr <- 0

# Define the UI
myui <- basicPage(
textOutput('var')
)

# Define the server code
myserver <- function(input, output, session) {

omega <- reactive({
invalidateLater(1000, session)
return(omega_nr)
})

# update non reactive value
observe({
omega()
omega_nr<<-omega_nr+1
})

output$var <- renderText(omega())
}


# Return a Shiny app object
shinyApp(ui = myui, server = myserver)

这是有效的,我刚刚测试过。

我会尝试其他选项并通知您。同时我也对精确解感兴趣。但不知怎的,我觉得不应该实现自引用 react 。但我可能错了..

关于r - Shiny (R) 中的自引用 react 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37128528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com