Füge einen weiteren reaktiven Ausdruck hinzu
Ein reaktiver Ausdruck kann andere reaktive Ausdrücke aufrufen. So kannst du Berechnungen modularisieren und sicherstellen, dass sie NICHT wiederholt ausgeführt werden. Den Umgang mit reaktiven Ausdrücken zu beherrschen, ist entscheidend, um performante Shiny-Anwendungen zu bauen.
In dieser Übung verwendest du einen reaktiven Ausdruck, um den Gesundheitsstatus basierend auf dem BMI zu berechnen.
Diese Übung ist Teil des Kurses
Webanwendungen mit Shiny in R entwickeln
Anleitung zur Übung
- Füge einen reaktiven Ausdruck
rval_bmi_statushinzu, um den BMI-Status zu berechnen. - Verwende diesen reaktiven Ausdruck, um die BMI-Status-Berechnungen in der Ausgabe zu ersetzen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)