Aan de slagGa gratis aan de slag

Voeg een reactieve expressie toe

Een reactieve expressie is een R-expressie die widgetinput gebruikt en een waarde teruggeeft. De reactieve expressie werkt deze waarde bij zodra de oorspronkelijke widget verandert. Reactieve expressies zijn lui en worden in cache bewaard.

In deze oefening kapsel je een herhaalde berekening in als een reactieve expressie.

Deze oefening maakt deel uit van de cursus

Webapplicaties bouwen met Shiny in R

Cursus bekijken

Oefeninstructies

  • Voeg een reactieve expressie rval_bmi toe om de BMI te berekenen.
  • Gebruik deze reactieve expressie om de BMI-berekeningen in beide outputs te vervangen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren