LoslegenKostenlos loslegen

Hilfsfunktionen erstellen

Es gibt viele Elemente, die zu einem shinydashboard hinzugefügt werden können. Damit Eingaben der Nutzerinnen und Nutzer mit den Ausgaben des Dashboards interagieren können, musst du diese Interaktionen innerhalb der Render-Funktionen definieren, die im Server platziert sind.

Wenn es viele Interaktionen und viele Ausgaben gibt, kann der Code sehr schnell unübersichtlich werden. Eine Möglichkeit, dieses Problem zu umgehen, ist, eigene Hilfsfunktionen außerhalb der shinydashboard-Umgebung zu erstellen.

Im Folgenden erstellst du zwei Hilfsfunktionen:

  1. num_listings(): Gibt die Anzahl der Einträge basierend auf gefilterten Daten innerhalb eines price-Bereichs zurück.
  2. make_plots(): Erstellt entweder Boxplots oder Violinplots basierend auf der Auswahl der Nutzerin/des Nutzers und auf gefilterten Daten innerhalb eines price-Bereichs.

listings ist geladen und sf, tidyverse sowie leaflet wurden importiert.

Diese Übung ist Teil des Kurses

Dashboards mit shinydashboard erstellen

Kurs anzeigen

Anleitung zur Übung

  • Filtere listings so, dass nur Werte zwischen der linken und rechten Grenze des Arguments range liegen; dieses dient als Platzhalter für eine shinyApp-Eingabe.
  • Setze die korrekten if-else-Bedingungen, sodass Boxplots gezeichnet werden, wenn choice "Box plots" entspricht, und Violinplots, wenn es "Violin plots" ist.

Interaktive Übung

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

num_listings <- function(range){
  # Filter listings appropriately
  filter(listings, price >= ___, price <= ___) %>% nrow()
}
make_plots <- function(range, choice){
  filtered_listings <- filter(listings, price >= range[1], price <= range[2])
  # Set the correct if-else conditions
  if (choice == ___){
     filtered_listings %>%
      ggplot(aes(y = price, x = room_type)) + geom_boxplot() + theme_classic()
  }
  else if (___){
    filtered_listings %>%
      ggplot(aes(y = price, x = room_type)) + geom_violin() + theme_classic()
}}
Code bearbeiten und ausführen