ÎncepețiÎncepe gratuit

Adaugă o altă expresie reactivă

O expresie reactivă poate apela alte expresii reactive. Astfel, poți modulariza calculele și te asiguri că acestea NU sunt executate în mod repetat. Stăpânirea expresiilor reactive este esențială pentru a construi aplicații Shiny performante.

În acest exercițiu, vei folosi o expresie reactivă pentru a calcula starea de sănătate pe baza IMC-ului.

Acest exercițiu face parte din cursul

Crearea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Adaugă o expresie reactivă rval_bmi_status pentru a calcula starea IMC-ului.
  • Folosește această expresie reactivă pentru a înlocui calculele stării IMC-ului din 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_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)
Editează și rulează codul