Añade otra expresión reactiva
Una expresión reactiva puede llamar a otras expresiones reactivas. Esto te permite modularizar los cálculos y asegurarte de que NO se ejecuten repetidamente. Dominar el uso de expresiones reactivas es clave para crear aplicaciones Shiny de alto rendimiento.
En este ejercicio, usarás una expresión reactiva para calcular el estado de salud según el IMC.
Este ejercicio forma parte del curso
Creación de aplicaciones web con Shiny en R
Instrucciones del ejercicio
- Añade una expresión reactiva
rval_bmi_statuspara calcular el estado del IMC. - Usa esta expresión reactiva para reemplazar los cálculos del estado del IMC en la salida.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
ui <- fluidPage(
titlePanel('BMI Calculator'),
sidebarLayout(
sidebarPanel(
numericInput('height', 'Enter your height in meters', 1.5, 1, 2),
numericInput('weight', 'Enter your weight in Kilograms', 60, 45, 120)
),
mainPanel(
textOutput("bmi"),
textOutput("bmi_status")
)
)
)
server <- function(input, output, session) {
rval_bmi <- reactive({
input$weight/(input$height^2)
})
# CODE BELOW: Add a reactive expression rval_bmi_status to
# return health status as underweight etc. based on inputs
output$bmi <- renderText({
bmi <- rval_bmi()
paste("Your BMI is", round(bmi, 1))
})
output$bmi_status <- renderText({
# MODIFY CODE BELOW: Replace right-hand-side with
# reactive expression rval_bmi_status
bmi_status <- cut(rval_bmi(),
breaks = c(0, 18.5, 24.9, 29.9, 40),
labels = c('underweight', 'healthy', 'overweight', 'obese')
)
paste("You are", bmi_status)
})
}
shinyApp(ui = ui, server = server)