Ajouter une expression réactive
Une expression réactive est une expression R qui utilise l’entrée d’un widget et renvoie une valeur. Elle mettra à jour cette valeur dès que le widget d’origine change. Les expressions réactives sont paresseuses et mises en cache.
Dans cet exercice, vous allez encapsuler un calcul répété dans une expression réactive.
Cet exercice fait partie du cours
<cours>Créer des applications web avec Shiny en R</cours>Instructions de l’exercice
- Ajoutez une expression réactive appelée
rval_bmipour calculer l’IMC. - Utilisez cette expression réactive pour remplacer les calculs d’IMC dans les deux sorties.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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_range")
)
)
)
server <- function(input, output, session) {
# CODE BELOW: Add a reactive expression rval_bmi to calculate BMI
output$bmi <- renderText({
# MODIFY CODE BELOW: Replace right-hand-side with reactive expression
bmi <- input$weight/(input$height^2)
paste("Your BMI is", round(bmi, 1))
})
output$bmi_range <- renderText({
# MODIFY CODE BELOW: Replace right-hand-side with reactive expression
bmi <- input$weight/(input$height^2)
bmi_status <- cut(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)