我开发了一个闪亮的应用程序(使用 shinydashboard),我想保存“会话”(会话是指用户输入的所有值和数据加载)。我想将它保存在 .RData 文件中,然后能够重新启动应用程序,加载 .RData 文件并取回用户定义的数据和输入,从而得到输出......
有没有办法用 shiny 做这样的事情?
谢谢
我尝试将 R 环境保存在 .RData 文件中,save.image
但没有成功。但有效的是使用save
andload
函数来存储和恢复为 .rda 文件。
至于命名,您可以使用时间戳来区分用户。
好的,所以在这个应用程序中有两个selectInput
元素:first和second。如果其中任何一个发生变化,则这些输入的值将分配给两个变量:first_var和second_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)
Shiny 刚刚发布了 0.14 版,其中包括书签,这可能是满足您需求的内置方法。有一个关于“高级书签”的特定教程,用于适合您情况的仪表板等用途:http: //shiny.rstudio.com/articles/advanced-bookmarking.html http://shiny.rstudio.com/文章/书签-state.html
0.14 升级需要当前的 R 版本(我认为是 3.3?)。