Kom igångKom igång gratis

Din första shinyApp

Du har sett hur indata och utdata kan kombineras i en shinyApp. Du har också sett hur en shinyApp kan byggas för att presentera resultat från sömnstudien.

Ditt mål nu är att skapa en shinyApp som redovisar två huvudresultat:

  1. Fördelningen av sovtimmar
  2. Medianen för sovtimmar bland olika åldersgrupper

I den här övningen har vi lagrat data som en dplyr-dataram kallad sleep, och biblioteken shiny och tidyverse är redan inladdade.

Nu är det din tur att skapa din egen shinyApp!

Den här övningen är en del av kursen

Bygga dashboards med shinydashboard

Visa kurs

Övningsinstruktioner

  • Lägg till två diagramutdata kallade "histogram" och "barchart" i mainPanel.
  • I argumentet choiceNames i checkboxGroupInput(), ersätt innehållet med ikoner som heter "calendar", "briefcase" och "gift".
  • Definiera de två utdatan: en kallad histogram och en kallad barchart.
  • Använd funktionen shinyApp() för att rendera shiny-appen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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
___
Redigera och kör kod