Filtrer par espérance de vie
Le véritable atout de Shiny apparaît lorsque les entrées sont combinées aux sorties. Le tableau créé dans l’exercice précédent est statique — il ne peut pas être modifié —, mais pour explorer les données, il serait préférable que l’utilisateur puisse choisir quel sous-ensemble afficher.
Pour cela, on peut ajouter une entrée permettant de sélectionner une valeur afin de filtrer les données. Ainsi, le tableau créé précédemment devient dynamique.
L’une des variables du jeu de données gapminder est lifeExp (espérance de vie). Votre tâche consiste à ajouter à l’application Shiny un curseur qui permette à l’utilisateur de choisir une espérance de vie minimale et maximale. Le tableau n’affichera alors que les données correspondant à ces valeurs.
Cet exercice fait partie du cours
Études de cas : créer des applications web avec Shiny en R
Instructions
- Ajoutez à l’interface un curseur avec l’identifiant "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
gapminderafin de ne conserver que les lignes dontlifeExpest comprise entre les valeurs minimale et maximale (bornes incluses).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)