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
Istruzioni dell'esercizio
- Aggiungi un'espressione reattiva
rval_bmi_statusper 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)