CommencerCommencez gratuitement

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 :

  1. Créez un tableau interactif avec DT::datatable().
  2. Rendu via DT::renderDT().
  3. 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>
Voir le cours

Instructions de l’exercice

  • Créez une sortie de tableau interactif avec DT contenant le top 10 des prénoms les plus populaires par sexe et par année. Vous pouvez utiliser la fonction top_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)
Modifier et exécuter le code