ÎncepețiÎncepe gratuit

Contexte reactive

Valorile reactive sunt construcții speciale în Shiny; nu le vei întâlni în altă parte în programarea R. Din acest motiv, ele nu pot fi folosite în orice cod R — valorile reactive pot fi accesate doar într-un context reactiv.

Acesta este motivul pentru care orice variabilă care depinde de o valoare reactivă trebuie creată folosind funcția reactive(), altfel vei primi o eroare. Serverul Shiny în sine nu este un context reactiv, însă funcția reactive(), funcția observe() și toate funcțiile render*() sunt contexte reactive.

Acest exercițiu face parte din cursul

Studii de caz: Construirea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

Ți se pune la dispoziție o aplicație Shiny care conține două intrări numerice, num1 și num2, și o ieșire text. Sarcina ta este să:

  • Calculezi suma celor două intrări numerice într-o variabilă reactivă numită my_sum (linia 10).
  • Calculezi media celor două intrări într-o variabilă reactivă numită my_average (linia 14).
  • Afișezi media calculată în ieșirea text, folosind variabilele reactive (linia 23).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

ui <- fluidPage(
  numericInput("num1", "Number 1", 5),
  numericInput("num2", "Number 2", 10),
  textOutput("result")
)

server <- function(input, output) {
  # Calculate the sum of the inputs
  my_sum <- reactive({
    input$num1 + ___
  })

  # Calculate the average of the inputs
  my_average <- ___({
    my_sum() / 2
  })
  
  output$result <- renderText({
    paste(
      # Print the calculated sum
      "The sum is", my_sum(),
      # Print the calculated average
      "and the average is", ___
    )
  })
}

shinyApp(ui, server)
Editează și rulează codul