Adaugă o expresie reactivă
O expresie reactivă este o expresie R care folosește valorile introduse prin widget-uri și returnează un rezultat. Expresia reactivă va actualiza acest rezultat ori de câte ori widget-ul corespunzător se modifică. Expresiile reactive sunt evaluate leneș și au rezultatele stocate în cache.
În acest exercițiu, vei încapsula un calcul repetat sub forma unei expresii reactive.
Acest exercițiu face parte din cursul
Crearea aplicațiilor web cu Shiny în R
Instrucțiuni pentru exercițiu
- Adaugă o expresie reactivă numită
rval_bmipentru a calcula IMC-ul. - Folosește această expresie reactivă pentru a înlocui calculele IMC din ambele rezultate.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)