Ajouter un tableau interactif en sortie
Il existe plusieurs packages htmlwidgets comme DT, leaflet, plotly, etc. qui fournissent des sorties très interactives et s’intègrent facilement dans des applications Shiny en suivant presque le même schéma. Par exemple, vous pouvez transformer un tableau statique dans une application Shiny en tableau interactif avec le package DT :
- Créez un tableau interactif avec
DT::datatable(). - Rendu via
DT::renderDT(). - Affichez-le avec
DT::DTOutput().
Dans cet exercice, vous allez mettre à jour l’application créée précédemment en remplaçant le tableau statique par un tableau interactif.
Cet exercice fait partie du cours
<cours>Créer des applications web avec Shiny en R</cours>Instructions de l’exercice
- Créez une sortie de tableau interactif avec
DTcontenant le top 10 des prénoms les plus populaires par sexe et par année. Vous pouvez utiliser la fonctiontop_10_names()pour générer un data frame à afficher, puis le passer àDT::datatable(). - Affichez le tableau dans l’interface.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
ui <- fluidPage(
titlePanel("What's in a Name?"),
# Add select input named "sex" to choose between "M" and "F"
selectInput('sex', 'Select Sex', choices = c("M", "F")),
# Add slider input named "year" to select year between 1900 and 2010
sliderInput('year', 'Select Year', min = 1900, max = 2010, value = 1900),
# MODIFY CODE BELOW: Add a DT output named "table_top_10_names"
tableOutput('table_top_10_names')
)
server <- function(input, output, session){
top_10_names <- function(){
babynames %>%
filter(sex == input$sex) %>%
filter(year == input$year) %>%
slice_max(prop, n = 10)
}
# MODIFY CODE BELOW: Render a DT output named "table_top_10_names"
output$table_top_10_names <- renderTable({
top_10_names()
})
}
shinyApp(ui = ui, server = server)