CommencerCommencez gratuitement

Votre première shinyApp

Vous avez vu comment associer des entrées et des sorties dans une shinyApp. Vous avez aussi vu comment une shinyApp peut être construite pour communiquer les résultats de l’étude sur le sommeil.

Votre objectif est maintenant de créer une shinyApp qui présente deux résultats principaux :

  1. La distribution des heures de sommeil
  2. La médiane des heures de sommeil selon différents groupes d’âge

Dans cet exercice, nous avons stocké les données dans un data frame dplyr appelé sleep, et les bibliothèques shiny et tidyverse ont déjà été chargées.

À vous de créer votre propre shinyApp !

Cet exercice fait partie du cours

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

Instructions de l’exercice

  • Ajoutez deux sorties de graphique appelées « histogram » et « barchart » dans le mainPanel.
  • Dans l’argument choiceNames de checkboxGroupInput(), remplacez son contenu par des icônes appelées « calendar », « briefcase » et « gift ».
  • Définissez les deux sorties, l’une appelée histogram, et l’autre appelée barchart.
  • Utilisez la fonction shinyApp() pour afficher la shiny app.

Exercice interactif pratique

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

ui <- fluidPage(
  titlePanel("Sleeping habits in America"), 
  fluidRow(
  # Place two plots here, called "histogram" and "barchart"
  mainPanel(___("histogram"), ___("barchart")), 
  inputPanel(sliderInput("binwidth", 
                         label = "Bin width", 
                         min = 0.1, max = 2, 
                         step = 0.01, value=0.25),
             checkboxGroupInput("days", "Choose types of days:",
                                # Replace the list elements with icons called "calendar", "briefcase" and "gift"
                                choiceNames = list("All days", 
                                                   "Non-holiday weekdays", 
                                                   "Weekend days/holidays"), 
                                choiceValues = list("All days", 
                                                    "Nonholiday weekdays", 
                                                    "Weekend days and holidays"))), 
  "In general, across the different age groups, Americans seem to get adequate daily rest." ))

server <- function(input, output, session) {
  # Define the histogram and barchart
  output$histogram <- ___({
    ggplot(sleep, aes(x=`Avg hrs per day sleeping`)) + 
    geom_histogram(binwidth = input$binwidth, col='white') + 
    theme_classic()
  })
  ___ <- ___({
    filter(sleep, `Type of Days` %in% input$days) %>%
      group_by(`Type of Days`, `Age Group`) %>%
      summarize(`Median hours` = median(`Avg hrs per day sleeping`)) %>%
      ggplot(aes(x = `Median hours`, y = `Age Group`, fill = `Type of Days`)) +
      geom_col(position = 'dodge') + theme_classic()
  })
}

# Use shinyApp() to render the shinyApp
___
Modifier et exécuter le code