Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Lägg till ett reaktivt uttryck rval_bmi_status fö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)
Redigera och kör kod