LoslegenKostenlos loslegen

Deine erste shinyApp

Du hast gesehen, wie Eingaben und Ausgaben in einer shinyApp zusammenkommen. Du hast auch gesehen, wie eine shinyApp aufgebaut sein kann, um Ergebnisse aus der Schlafstudie zu kommunizieren.

Dein Ziel ist jetzt, eine shinyApp zu erstellen, die zwei Hauptergebnisse berichtet:

  1. Die Verteilung der Schlafstunden
  2. Die medianen Schlafstunden in verschiedenen Altersgruppen

In dieser Übung haben wir die Daten als dplyr-Data-Frame namens sleep gespeichert, und die Bibliotheken shiny und tidyverse sind bereits geladen.

Jetzt bist du dran: Erstelle deine eigene shinyApp!

Diese Übung ist Teil des Kurses

Dashboards mit shinydashboard erstellen

Kurs anzeigen

Anleitung zur Übung

  • Füge zwei Plot-Ausgaben namens "histogram" und "barchart" zum mainPanel hinzu.
  • Ersetze im Argument choiceNames in checkboxGroupInput() den Inhalt durch Icons namens "calendar", "briefcase" und "gift".
  • Definiere die beiden Outputs, einen namens histogram und einen weiteren namens barchart.
  • Verwende die Funktion shinyApp(), um die shiny-App zu rendern.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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
___
Code bearbeiten und ausführen