2016-09-07 4 views
1

Я разработал блестящее приложение (используя shinydashboard), и я хотел бы сохранить «сеанс» (по сеансу i означают все значения ввода и загрузку данных пользователем) , Я хочу сохранить его в файле .RData, а затем перезапустить приложение, загрузить файл .RData и вернуть данные и вход, определенные пользователем, и, следовательно, выход ...Как перезагрузить блестящее приложение

Есть ли способ делать такую ​​вещь с блестящей?

Благодаря

+0

Да, есть объект 'session', который содержит все входы и выходы. См. Http://shiny.rstudio.com/reference/shiny/latest/session.html –

ответ

0

Я пытался сохранить окружающую среду R в файле .rdata с помощью save.image, но это не сработало. Что работает, но использует функции save и load для хранения и восстановления файлов .rda.

Что касается именования, вы можете использовать временную метку, чтобы различать пользователей.

Редактировать (пример)

Итак, в этом приложении есть два selectInput элементы: первого и вторых. Если какое-либо из этих изменений изменяется, значения этих входов затем присваиваются двум переменным: 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) 
+0

Благодарим вас за ответ. Я пытаюсь использовать функцию 'save', чтобы сохранить вход в файл .RData, он работает, но мне не удалось восстановить вход, используя функцию« load ». Как вы это делаете? – Ghoipy

+0

Сохраните его как .rda. Что-то вроде этого, если у вас есть две переменные: 'save (file =" test.rda ", list = c (" first "," second "))' Затем вы можете загрузить их в любое время, используя 'load (" test .rda ")'. После загрузки вы сможете получить к ним доступ. Даже в блестящем приложении. Я добавляю пример, в ближайшее время – GyD

0

Только что выпущенная версия Shiny выпустила версию 0.14, которая включает в себя закладки, которые могут быть встроенным подходом для удовлетворения ваших потребностей. Существует специальный учебник по «расширенному закладку» для таких целей, как приборные панели, которые были бы пригодны в вашем случае: (? 3.3, я думаю) http://shiny.rstudio.com/articles/advanced-bookmarking.html http://shiny.rstudio.com/articles/bookmarking-state.html

0,14 обновление требуется текущая версия R.

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – ekad