Contextes réactifs
Les valeurs réactives sont des constructions particulières dans Shiny; on ne les retrouve nulle part ailleurs en programmation R. Par conséquent, 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(), autrement vous obtiendrez une erreur. Le serveur Shiny lui‑même n'est pas un contexte réactif, mais la fonction reactive(), la fonction observe() et toutes les fonctions render*() le sont.
Cette activité fait partie du cours
Études de cas : créer des applications Web avec Shiny en R
Instructions de l’exercice
On vous fournit une application Shiny qui contient deux champs numériques, num1 et num2, ainsi qu'un résultat textuel. Votre tâche consiste à :
- Dans une variable réactive appelée
my_sum, calculer la somme des deux champs numériques (ligne 10). - Dans une variable réactive appelée
my_average, calculer la moyenne des deux champs (ligne 14). - Dans le résultat textuel, afficher la moyenne calculée en utilisant les variables réactives (ligne 23).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)