gpt4 book ai didi

r - 在 Shiny session 结束时保存用户输入?

转载 作者:行者123 更新时间:2023-12-04 16:00:50 24 4
gpt4 key购买 nike

我正在尝试制作 Shiny App,它允许用户保存输入并稍后加载它们。

解决此问题的最简单方法是制作保存输入的保存按钮。这是要演示的基本应用程序:

服务器.R

ui <- fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("integer", "Integer:",
min = 0, max = 1000,
value = 500)
),

mainPanel(tableOutput("values"),
actionButton('save_inputs', 'Save inputs')
)

))

server <- function(input, output, session) {
sliderValues <- reactive({
value = input$integer
})

output$values <- renderTable({
sliderValues()
})

observeEvent(input$save_inputs,{
saveRDS( input$integer , file = 'integer.RDS')
})
}

shinyApp(ui = ui, server = server)

但是,我想自动保存,例如我希望在 session 结束时保存输入。 onSessionEnded() 应该是对此的回答,但它无法达到输入值并保存它们。

 session$onSessionEnded( function() {
saveRDS( input$integer, file = 'integer.RDS')
})

返回错误:警告:

Error in .getReactiveEnvironment()$currentContext: Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)

有什么办法可以解决吗?

最佳答案

使用isolate 似乎可以解决问题。

 session$onSessionEnded(function() {
isolate(saveRDS( input$integer, file = 'integer.RDS'))
})

关于r - 在 Shiny session 结束时保存用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50512142/

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