Inizia subitoInizia gratis

Aggiungi un'altra espressione reattiva

Un'espressione reattiva può chiamare altre espressioni reattive. Questo ti permette di modularizzare i calcoli e fare in modo che NON vengano eseguiti ripetutamente. Saper usare le espressioni reattive è fondamentale per creare applicazioni Shiny performanti.

In questo esercizio userai un'espressione reattiva per calcolare lo stato di salute in base al BMI.

Questo esercizio fa parte del corso

Creare applicazioni web con Shiny in R

Visualizza corso

Istruzioni dell'esercizio

  • Aggiungi un'espressione reattiva rval_bmi_status per calcolare lo stato BMI.
  • Usa questa espressione reattiva per sostituire i calcoli dello stato BMI nell'output.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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)
Modifica ed esegui il codice