es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo actualizar datos haciendo clic en el botón de acción en R durante la ejecución.

Quiero actualizar los datos de salida en el botón de actualización cada vez que lo presiono. Aquí está mi código que muestra la salida en el botón de actualización la primera vez que ejecuto el código, pero en tiempo de ejecución si cambia la entrada, la salida se actualiza automáticamente.

biblioteca(shiny)

ui <- fluidPage(
  titlePanel("My Shop App"),

  sidebarLayout(
    sidebarPanel(
      helpText("Controles para mi aplicación"),

      selectInput("item", 
                  label = "Elegir un artículo",
                  choices = list("Teclado", 
                                 "Ratón",
                                 "USB")),

      sliderInput("price", 
                  label = "Establecer precio:",
                  min=0, max = 100, value=10),

      actionButton ("update","Actualizar precio")
    ),

    mainPanel(
      helpText("Artículo seleccionado:"),
      verbatimTextOutput("item"),
      helpText("Precio"),
      verbatimTextOutput("price")
    )
  )
)

server <- function(input, output) {
  SelectInput <- eventReactive (input$update , {
    output$item = renderText(input$item)
    output$price = renderText(input$price)
  })

  output$item <- renderText(SelectInput())
  output$price <- renderText(SelectInput())
}

shinyApp(ui = ui, server = server)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para actualizar los datos de salida en el botón de actualización cada vez, necesitamos hacer algunos cambios en el código:

    1. Crear una variable reactiva para almacenar las entradas.
    2. Usar la función observeEvent para actualizar la variable reactiva cuando se hace clic en el botón de actualización.
    3. Usar la función renderText para mostrar los valores actualizados de la variable reactiva en los campos de salida.

    Aquí está el código modificado:

    “`{r}

    library(shiny)

    ui <- fluidPage(
    titlePanel(“Mi Aplicación Tienda”),

    sidebarLayout(
    sidebarPanel(
    helpText(“Controles para mi aplicación”),

      selectInput("item", 
                  label = "Elegir un artículo",
                  choices = list("Teclado", 
                                 "Ratón",
                                 "USB")),
    
      sliderInput("price", 
                  label = "Establecer precio:",
                  min = 0, max = 100, value = 10),
    
      actionButton("update", "Actualizar Precio")
    ),
    
    mainPanel(
      helpText("Elemento Seleccionado:"),
      verbatimTextOutput("item_output"),
      helpText("Precio"),
      verbatimTextOutput("price_output")
    )
    

    )
    )

    server <- function(input, output) {

    # crear una variable reactiva para almacenar las entradas
    inputs <- reactiveValues()

    # actualizar la variable reactiva cuando se hace clic en el botón de actualización
    observeEvent(input$update, {
    inputs$item <- input$item
    inputs$price <- input$price
    })

    # mostrar los valores actualizados de la variable reactiva en los campos de salida
    output$item_output <- renderText({
    if (!is.null(inputs$item)) {
    inputs$item
    }
    })

    output$price_output <- renderText({
    if (!is.null(inputs$price)) {
    inputs$price
    }
    })
    }

    shinyApp(ui = ui, server = server)

    “`

    Con estos cambios, los campos de salida se actualizarán cada vez que se haga clic en el botón de actualización.

Comments are closed.