IniziaInizia gratis

Contesti reattivi

I valori reattivi sono costrutti speciali in Shiny; non esistono altrove nella programmazione R. Per questo, non possono essere usati in un qualsiasi codice R: i valori reattivi possono essere accessi solo all'interno di un contesto reattivo.

Ecco perché qualsiasi variabile che dipende da un valore reattivo deve essere creata usando la funzione reactive(), altrimenti otterrai un errore. Il server di Shiny in sé non è un contesto reattivo, ma lo sono la funzione reactive(), la funzione observe() e tutte le funzioni render*().

Questo esercizio fa parte del corso

Casi di studio: creare applicazioni web con Shiny in R

Visualizza il corso

Istruzioni dell'esercizio

Ti viene fornita un'app Shiny con due input numerici, num1 e num2, e un output testuale. Il tuo compito è:

  • In una variabile reattiva chiamata my_sum, calcolare la somma dei due input numerici (riga 10).
  • In una variabile reattiva chiamata my_average, calcolare la media dei due input (riga 14).
  • Nell'output testuale, mostrare la media calcolata usando le variabili reattive (riga 23).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice