Filtrer selon l'espérance de vie
Le véritable avantage de Shiny apparaît lorsque les entrées sont combinées aux sorties. Le tableau créé dans le dernier exercice est statique — il ne peut pas être modifié — mais pour l'exploration, il serait préférable que l'utilisateur puisse décider quel sous-ensemble de données afficher.
On peut y arriver en ajoutant une entrée qui permet à l'utilisateur de choisir une valeur pour filtrer les données. Ainsi, le tableau créé à l'exercice précédent peut devenir dynamique.
L'une des variables du jeu de données gapminder est lifeExp (espérance de vie). Votre tâche consiste à ajouter un curseur à l'application Shiny pour permettre à l'utilisateur de choisir une espérance de vie minimale et maximale. Le tableau n'affichera que les données qui correspondent à ces valeurs.
Cette activité fait partie du cours
Études de cas : créer des applications Web avec Shiny en R
Instructions de l’exercice
- Ajoutez un curseur à l'interface (UI) avec l'ID « life », une valeur minimale de 0, une valeur maximale de 120 et une sélection par défaut de 30 à 50.
- Dans la fonction de rendu, utilisez la valeur d'entrée pour filtrer les données
gapminderafin d'inclure uniquement les enregistrements dontlifeExpse situe entre les valeurs minimale et maximale (inclusives toutes les deux).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
ui <- fluidPage(
h1("Gapminder"),
# Add a slider for life expectancy filter
___(inputId = ___, label = "Life expectancy",
min = ___, max = ___,
value = c(30, 50)),
tableOutput("table")
)
server <- function(input, output) {
output$table <- renderTable({
data <- gapminder
data <- subset(
data,
# Use the life expectancy input to filter the data
lifeExp >= ___life[1] & lifeExp <= ___life[2]
)
data
})
}
shinyApp(ui, server)