2

我开发了一个闪亮的应用程序(使用 shinydashboard),我想保存“会话”(会话是指用户输入的所有值和数据加载)。我想将它保存在 .RData 文件中,然后能够重新启动应用程序,加载 .RData 文件并取回用户定义的数据和输入,从而得到输出......

有没有办法用 shiny 做这样的事情?

谢谢

4

2 回答 2

1

我尝试将 R 环境保存在 .RData 文件中,save.image但没有成功。但有效的是使用saveandload函数来存储和恢复为 .rda 文件。

至于命名,您可以使用时间戳来区分用户。

编辑(示例)

好的,所以在这个应用程序中有两个selectInput元素:firstsecond。如果其中任何一个发生变化,则这些输入的值将分配给两个变量:first_varsecond_var,它们被保存到test.rda文件中。如果此文件存在,则将变量加载到会话中。

因此,基本上,如果您先运行应用程序,则无论何时更改输入,它们都会保存到 .rda 文件中。如果您退出然后重新运行应用程序,则会加载变量,并将它们设置为输入的选定值。

library(shiny)
if(file.exists("test.rda")) load("test.rda")

ui <- fluidPage(
  selectInput("first",
              label = "First",
              choices = c("Value A", "Value B", "Value C"),
              selected = ifelse(exists("first_var"), first_var, "Value A")
  ),
  selectInput("second",
              label = "Second",
              choices = c("Value D", "Value E", "Value F"),
              selected = ifelse(exists("second_var"), second_var, "Value D")
  )
)

server <- function(input, output, session){
  observe({
    first_var <- input$first
    second_var <- input$second
    save(file = "test.rda", list = c("first_var", "second_var"))
  })
}

shinyApp(ui, server)
于 2016-09-09T06:12:31.997 回答
0

Shiny 刚刚发布了 0.14 版,其中包括书签,这可能是满足您需求的内置方法。有一个关于“高级书签”的特定教程,用于适合您情况的仪表板等用途:http: //shiny.rstudio.com/articles/advanced-bookmarking.html http://shiny.rstudio.com/文章/书签-state.html

0.14 升级需要当前的 R 版本(我认为是 3.3?)。

于 2016-10-08T10:26:51.193 回答