CommencerCommencez gratuitement

Créez votre premier tableau de bord

Les données sont stockées dans un data frame appelé soccer. Trois graphiques sont prédéfinis :

  • goals_plot : le nombre de buts marqués par chaque équipe
  • yellow_plot, red_plot : le nombre de cartons jaunes/rouges reçus par chaque équipe

Des fonctions utilitaires personnalisées sont utilisées ici :

  • daytime_fn() : retourne le jour et l’heure d’un match donné
  • venue_fn() : retourne le stade d’un match donné
  • grp_fn() : retourne le groupe de l’affiche
  • team1_fn(), team2_fn() : les noms des équipes 1/2
  • score1_fn(), score2_fn() : le nombre de buts marqués par l’équipe 1/2

Cet exercice fait partie du cours

<cours>Créer des tableaux de bord avec shinydashboard</cours>
Voir le cours

Instructions de l’exercice

  • Complétez les champs manquants pour les RÉSULTATs des lignes 1 à 3 de l’onglet/page 1.
  • Complétez les champs manquants pour les sorties de graphiques de la deuxième page, appelées « goals », « yellow » et « red ».
  • Rassemblez l’UI et le serveur pour afficher le shinydashboard.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

body <- dashboardBody(tabItems(
  tabItem(tabName = "matchtab", 
  fluidRow(selectInput("match", "Match number", choices = 1:nrow(soccer)),
           infoBoxOutput("daytime"), infoBoxOutput("venue"), infoBoxOutput("grp")),
  fluidRow(valueBoxOutput("team1", width = 3), valueBoxOutput("score1", width = 3), 
           valueBoxOutput("team2", width = 3), valueBoxOutput("score2", width = 3)),
  fluidRow(plotOutput("histogram"))),
  tabItem(tabName = "statstab", 
          tabBox(tabPanel("Goals", plotOutput("goals", height = "700px")),
                 tabPanel("Yellow cards", plotOutput("yellow", height = "700px")),
                 tabPanel("Red cards", plotOutput("red"))))
))

ui <- dashboardPage(header, sidebar, body)

server <- function(input, output) {
  # Fill in outputs in first to third rows of the first page
  output$daytime <- renderInfoBox(infoBox("Day and time", 
                                          daytime_fn(input$match), 
                                          icon = icon("calendar"), 
                                          color = "green"))
  output$venue <- ___(infoBox("Venue", 
                                        venue_fn(input$match), 
                                        icon = icon("map"), 
                                        color = "green"))
  output$___ <- ___(___("Group", 
                                      grp_fn(input$match), 
                                      color = "green"))
  output$team1 <- ___(valueBox("Team 1", team1_fn(input$match), color = "blue"))
  output$score1 <- ___(___("# of goals", score1_fn(input$match), color = "blue"))
  output$___ <- ___(valueBox("Team 2", team2_fn(input$match), color = "red")) 
  ___ <- ___(valueBox("# of goals", score2_fn(input$match), color = "red"))
  output$histogram <- renderPlot(plot_histogram(input$match))
  # Fill in outputs in the second page
  output$goals <- ___(goals_plot)
  output$___ <- ___(yellow_plot)
  ___ <- ___(red_plot)
}

# Put the UI and server together
___
Modifier et exécuter le code