ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Añade una expresión reactiva rval_bmi_status para 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)
Editar y ejecutar código