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
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)