Lägg till ytterligare ett reaktivt uttryck
Ett reaktivt uttryck kan anropa andra reaktiva uttryck. Det gör att du kan modularisera beräkningar och säkerställa att de INTE körs upprepade gånger. Att behärska reaktiva uttryck är avgörande för att bygga prestandaeffektiva Shiny-applikationer.
I den här övningen använder du ett reaktivt uttryck för att beräkna hälsostatus baserat på BMI.
Den här övningen är en del av kursen
Bygg webbapplikationer med Shiny i R
Övningsinstruktioner
- Lägg till ett reaktivt uttryck
rval_bmi_statusför att beräkna BMI-status. - Använd det här reaktiva uttrycket för att ersätta BMI-statusberäkningarna i utdatan.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)