Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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