Пожалуйста, запустите приложение и попросите поместить что-то в соответствующие входы.Тогда, пожалуйста, сохраните объект.Вы найдете файл .Rdata, сохраненный в вашем рабочем каталоге.Вот моя проблема, которую я не могу понять.
В приведенном ниже приложении может блестящий ввод (например, input $ name, input $ age, input $ location и т. Д.) Считывать значения, сохраненные в .Rdata?
Я могу сохранить входные данные в файле .Rdata в моем рабочем каталоге.Однако, когда я загружаю файл обратно, есть ли способ заменить поля ввода значениями, хранящимися в файле .Rdata, иначе нет смысла сохранять их правильно?Это настольное приложение, которое мы будем запускать локально.Поэтому важно сохранять пользовательские данные в каждой точке.Однако проблема, когда мы загружаем файл .Rdata, в котором ранее были выбраны входные данные, мы не можем заменить блестящие входные данные этими значениями.Следовательно, я должен сделать эти выборы снова из блестящего ввода.Таким образом, сохраненный файл бесполезен.
library(shiny)
library(pryr)
ui <- function(request){
fluidPage(
titlePanel("Put title of the application"),
sidebarLayout(
sidebarPanel(
textInput("name", "Type your name", ""),
textInput("age", "Type your age", ""),
radioButtons("gender", "Select your gender", list("Male", "Female"), ""),
sliderInput("height", "Select your height", min = 5.0, max = 8.0, value = 5.2, step = 0.1),
selectInput("location", "Select your location", choices = c("","Gurgaon", "Bangalore", "Mumbai")),
actionButton("save_objs", "Save Objects"),
actionButton("load_objs", "Load Objects"),
bookmarkButton()
),
mainPanel(
textOutput("username"),
textOutput("userage"),
textOutput("usergender"),
textOutput("userheight"),
textOutput("userlocation"),
textOutput("userload")
)
)
)
}
server <- function(input, output, session) {
vals <- reactiveValues(name = NULL)
output$username <- renderText(input$name)
output$userage <- renderText(input$age)
output$usergender <- renderText(input$gender)
output$userheight <- renderText(input$height)
output$userlocation <- renderText(input$location)
observeEvent(input$save_objs, {
# Run whenever save_objs button is pressed
print("** saving objects! **")
## Print the objects being saved
print(rls())
# ## Put objects into current environment
for(obj in unlist(rls())) {
if(class(get(obj, pos = -1))[1] == "reactive"){
## execute the reactive objects and put them in to this
## environment i.e. into the environment of this function
assign(obj, value = eval(call(obj)))
} else {
## grab the global variables and put them into this
## environment
assign(obj, value = get(obj, pos = -1))
}
}
input_copy <- list()
for(nm in names(input)){
# assign(paste0("input_copy$", nm), value <- input[[nm]])
input_copy[[nm]] <- input[[nm]]
}
## save objects in current environment
save(list = ls(), file = "shiny_env.Rdata", envir = environment())
print("** done saving **")
})
observeEvent(input$load_objs, {
# Run whenever load_objs button is pressed
## Load the objects
f.loaddata <- function()
{
myenv <- new.env()
load(file = file.choose(), envir = myenv)
myenv
}
print("** About to load objects! **")
# ## Put objects into current environment
some <- f.loaddata()
#print(some$input_copy$name)
vals$name <- some$input_copy$name
vals$name <- input$name
print("** done loading **")
})
}
shinyApp(ui, server, enableBookmarking = "server")