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
<Kurs>Webanwendungen mit Shiny in R entwickeln</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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)