ComenzarEmpieza gratis

Contextos reactivos

Los valores reactivos son construcciones especiales en Shiny; no aparecen en ningún otro lugar de la programación en R. Por ello, no pueden usarse en cualquier código de R: los valores reactivos solo se pueden acceder dentro de un contexto reactivo.

Esta es la razón por la que cualquier variable que dependa de un valor reactivo debe crearse con la función reactive(), de lo contrario obtendrás un error. El propio servidor de Shiny no es un contexto reactivo, pero sí lo son la función reactive(), la función observe() y todas las funciones render*().

Este ejercicio forma parte del curso

Casos prácticos: crea aplicaciones web con Shiny en R

Ver curso

Instrucciones del ejercicio

Se te proporciona una app Shiny con dos entradas numéricas, num1 y num2, y una salida de texto. Tu tarea es:

  • En una variable reactiva llamada my_sum, calcula la suma de las dos entradas numéricas (línea 10).
  • En una variable reactiva llamada my_average, calcula la media de las dos entradas (línea 14).
  • En la salida de texto, muestra la media calculada usando las variables reactivas (línea 23).

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

ui <- fluidPage(
  numericInput("num1", "Number 1", 5),
  numericInput("num2", "Number 2", 10),
  textOutput("result")
)

server <- function(input, output) {
  # Calculate the sum of the inputs
  my_sum <- reactive({
    input$num1 + ___
  })

  # Calculate the average of the inputs
  my_average <- ___({
    my_sum() / 2
  })
  
  output$result <- renderText({
    paste(
      # Print the calculated sum
      "The sum is", my_sum(),
      # Print the calculated average
      "and the average is", ___
    )
  })
}

shinyApp(ui, server)
Editar y ejecutar código