gpt4 book ai didi

r - 保存 Shiny 应用程序的状态以便稍后恢复

转载 作者:行者123 更新时间:2023-12-04 08:23:33 26 4
gpt4 key购买 nike

我有一个 Shiny 的应用程序,每个选项卡上有许多选项卡和许多小部件。它是一个数据驱动的应用程序,因此数据与每个选项卡相关联。

我可以使用 image.save() 保存应用程序并创建一个 .RData文件供以后使用。

我遇到的问题如何恢复小部件的状态?

如果用户在列表框中选中了复选框、选中的单选按钮和指定的基线值,我可以在 load() 中设置它们吗?步?

我找到了诸如 shinyURL 之类的库。和 shinystore但是有没有直接的方法可以将环境设置回 write.image 时已完成?

我不知道从哪里开始,所以我不能发布代码。

编辑:这是来自 Shiny Google Group 的交叉帖子已提出其他解决方案的地方

最佳答案

这有点hacky,但它有效。它使用了一个“内部”函数( session$sendInputMessage ),该函数并不意味着显式调用,因此不能保证这将始终有效。

您想保存 input 的所有值目的。我正在使用 reactiveValuesToList(input) 获取所有小部件(请注意,这也将保存按钮的状态,这并不完全有意义)。另一种方法是准确枚举要保存的小部件,但该解决方案不太通用,每次添加/删除输入时都必须更新它。在下面的代码中,我只是将值保存到名为 values 的列表中。 ,您可以根据需要将其保存到文件中(RDS/文本文件/其他文件)。然后加载按钮查看该列表并根据列表中的值更新每个输入。

this thread 中也有类似的想法

library(shiny)

shinyApp(
ui = fluidPage(
textInput("text", "text", ""),
selectInput("select", "select", 1:5),
uiOutput("ui"),
actionButton("save", "Save"),
actionButton("load", "Load")
),

server = function(input, output, session) {

output$ui <- renderUI({
tagList(
numericInput("num", "num", 7),
checkboxGroupInput("chk", "chk", 1:5, c(2,4))
)
})

observeEvent(input$save, {
values <<- lapply(reactiveValuesToList(input), unclass)
})

observeEvent(input$load, {
if (exists("values")) {
lapply(names(values),
function(x) session$sendInputMessage(x, list(value = values[[x]]))
)
}
})
}
)

关于r - 保存 Shiny 应用程序的状态以便稍后恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32922190/

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