Buenas, Hace poco he descubierto la opcion de guardar el estado de una app de Shiny mediante bookmark, pero la documentaci?n que ofrecen me parece pobre. Por ejemplo, y es algo que he preguntado en stackoverflow, si quiero hacer una app que guarde el fichero que he subido, no se muy bien como hacerlo... Basado en el codigo que viene en Rstudio sobre apps para subir ficheros, detallado aqui: https://shiny.rstudio.com/articles/upload.html Lo modifico para a?adir el bookmark, pero no consigo que funcione. Alguna ayuda? Aqui mi codigo de shiny con bookmark library(shiny) ui <- fluidPage( # App title ---- titlePanel("Uploading Files"), # Sidebar layout with input and output definitions ---- sidebarLayout( # Sidebar panel for inputs ---- sidebarPanel( bookmarkButton(), # Input: Select a file ---- fileInput("file1", "Choose CSV File", multiple = TRUE, accept = c("text/csv", "text/comma-separated-values,text/plain", ".csv")), # Horizontal line ---- tags$hr(), # Input: Checkbox if file has header ---- checkboxInput("header", "Header", TRUE), # Input: Select separator ---- radioButtons("sep", "Separator", choices = c(Comma = ",", Semicolon = ";", Tab = "\t"), selected = ","), # Input: Select quotes ---- radioButtons("quote", "Quote", choices = c(None = "", "Double Quote" = '"', "Single Quote" = "'"), selected = '"'), # Horizontal line ---- tags$hr(), # Input: Select number of rows to display ---- radioButtons("disp", "Display", choices = c(Head = "head", All = "all"), selected = "head") ), # Main panel for displaying outputs ---- mainPanel( # Output: Data file ---- tableOutput("contents") ) ) ) # Define server logic to read selected file ---- server <- function(input, output) { output$contents <- renderTable({ # input$file1 will be NULL initially. After the user selects # and uploads a file, head of that data file by default, # or all rows if selected, will be shown. req(input$file1) df <<- read.csv(input$file1$datapath, header = input$header, sep = input$sep, quote = input$quote) if(input$disp == "head") { return(head(df)) } else { return(df) } }) onBookmark(function(state){ state$values$data <- df }) onRestore(function(state){ df <- state$values$data }) } enableBookmarking(store="server") shinyApp(ui, server) Gracias y feliz a?o por anticipado! Jes?s [[alternative HTML version deleted]]