observeevent ejemplos r animation shiny reset

ejemplos - restablecer la animación en Shiny R Studio



shiny rstudio gallery (1)

Según su aplicación, fue más rápido agregar otra observe y reiniciar el contador a 1 usando el operador de asignación global <<- . También cambié la trama para que traza variables indexadas. Eche un vistazo a los problemas similares que la gente tenía, aquí . NB: en algunas de mis aplicaciones también tengo el botón de pausa cuando un usuario presiona el botón de inicio dos veces, puede lograrlo comprobando si el índice del botón es divisible por dos o no, ya que cada vez que se hace clic en el botón se incrementa en uno.

Estuve investigando su aplicación, me aseguro de que es una basura que recoge observadores no referenciados, ya que puede que se quede sin memoria (mire el perfil de la memoria a través del Administrador de tareas). Mire este ejemplo aquí , alternativamente puede configurar una funcionalidad de cierre de sesión por sesión en la que el cliente se cerrará después de n cantidad de minutos.

rm(list = ls()) library(shiny) ui <- (fluidPage( # Application title headerPanel("Cost Explorer"), sidebarPanel( actionButton("goButton", "Go!"), actionButton("reset", "Reset"), sliderInput("myvar", label=h6("Variability of cost"),min=0, max=50, value=10) ), mainPanel(plotOutput(outputId="tsplot")) )) server <- (function(input, output, session) { # initialize reactive values ts <- reactiveValues(cost=rep(NA,100), year=(2010:2109), counter=1) output$tsplot <- renderPlot({ plot(ts$year[1:ts$counter], ts$cost[1:ts$counter], xlim=c(2010,2110), ylim=c(-200,200), xlab="Year", ylab="Cost (US Dollars)", type="l", main="Forecasted Cost Time series") }) observe({ isolate({ if (ts$counter==1){ ts$cost[ts$counter]=50 #initial cost } if (ts$counter > 1){ ts$cost[ts$counter]=ts$cost[ts$counter-1]+rnorm(1,0,input$myvar) } ts$counter=ts$counter+1 }) if (((isolate(ts$counter) < 100)) & (input$goButton > 0)){ invalidateLater(200, session) } }) observe({ if (input$reset > 0){ ts$counter <<- 1 } }) }) runApp(list(ui = ui, server = server))

Estoy construyendo un proyecto de gráfico animado usando R Studio''s Shiny. Actualmente el "Go!" botón inicia la animación. Me gustaría que el botón "Restablecer" reinicialice las variables y vuelva a ejecutar la animación, pero como Shiny no permite cambios dentro del código a los valores del botón $ de entrada, estoy atascado en cómo hacerlo. El proyecto real es similar en forma a los bloques de muestra a continuación, pero mucho más involucrado. La animación es integral a la información que se transmite. Cuando se complete el proyecto, tengo la intención de implementarlo en el servidor Shiny, por lo que me gustaría que los usuarios puedan volver a ejecutar la animación con diferentes selecciones sin tener que volver a abrir el enlace.

# ui.R library(shiny) shinyUI(fluidPage( # Application title headerPanel("Cost Explorer"), sidebarPanel( actionButton("goButton", "Go!"), actionButton("reset", "Reset"), sliderInput("myvar", label=h6("Variability of cost"), min=0, max=50, value=10) ), mainPanel( plotOutput(outputId="tsplot") ) )) # server.R library(shiny) shinyServer(function(input, output, session) { # initialize reactive values ts <- reactiveValues(cost=rep(NA,100), year=(2010:2109), counter=1) output$tsplot <- renderPlot({ plot(ts$year, ts$cost, xlim=c(2010,2110), ylim=c(-200,200), xlab="Year", ylab="Cost (US Dollars)", type="l", main="Forecasted Cost Time series") }) observe({ isolate({ if (ts$counter==1){ ts$cost[ts$counter]=50 #initial cost } if (ts$counter > 1){ ts$cost[ts$counter]=ts$cost[ts$counter-1]+rnorm(1,0,input$myvar) } ts$counter=ts$counter+1 }) if (((isolate(ts$counter) < 100)) & (input$goButton > 0)){ invalidateLater(200, session) } if (input$reset > 0){ # How do I add reset functionality? } }) })