CommencerCommencer gratuitement

Contextes réactifs

Les valeurs réactives sont des constructions particulières dans Shiny ; on ne les retrouve nulle part ailleurs en programmation R. De ce fait, elles ne peuvent pas être utilisées dans n’importe quel code R : les valeurs réactives ne sont accessibles que dans un contexte réactif.

C’est pourquoi toute variable qui dépend d’une valeur réactive doit impérativement être créée avec la fonction reactive() ; sinon, vous obtiendrez une erreur. Le serveur Shiny en lui‑même n’est pas un contexte réactif, mais la fonction reactive(), la fonction observe() et toutes les fonctions render*() le sont.

Cet exercice fait partie du cours

Études de cas : créer des applications web avec Shiny en R

Afficher le cours

Instructions

On vous fournit une application Shiny contenant deux entrées numériques, num1 et num2, ainsi qu’un résultat texte. Votre tâche consiste à :

  • Dans une variable réactive appelée my_sum, calculer la somme des deux entrées numériques (ligne 10).
  • Dans une variable réactive appelée my_average, calculer la moyenne des deux entrées (ligne 14).
  • Dans le résultat texte, afficher la moyenne calculée en utilisant les variables réactives (ligne 23).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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)
Modifier et exécuter le code